Start learning with our library of video tutorials taught by experts. Get started
Viewers: in countries Watching now:
Many successful programmers know more than just a computer language. They also know how to think about solving problems. They use "computational thinking": breaking a problem down into segments that lend themselves to technical solutions.
Code Clinic is a series of six courses where lynda.com authors solve the same problems using different programming languages. Here, David Gassner works with C#.
Each month, David will introduce a new challenge and provide an overview of his solution in C#, explaining how he broke the problem up into logical components, and revealing the difficulties he encountered. Challenges will include topics such as statistical analysis, searching directories for images, and accessing peripheral devices.
Visit other courses in the series to see how to solve the exact same challenge in languages like C++, Java, PHP, Python, and Ruby. And check back every month for new challenges.
Hello and welcome to Code Clinic. My name is David Gassner. Code Clinic is a monthly course where a unique problem is introduced to a collection of Lynda.com authors. In response, each author will create a solution using their programming language of choice. You can learn several things from Code Clinic: Different approaches to solving a problem, the pros and cons of different languages, and some tips and tricks to incorporate into your own coding practices.
This is a problem centered around image analysis. In one sense, this is simply data analysis. Images are really nothing more than specialized and well-defined sets of data. An image consists of pixels. Pixels consist of data, representing a color, and in some cases, transparency. The pixels are arranged in rows and columns. When assembled correctly they represent an image.
Our brains are very good at recognizing patterns, but computers are not. Think about CAPTCHA security devices, those puzzles you sometimes see when logging into a website. The CAPTCHA asks what letters and numbers are in the image. Information is obscured by random lines, or sometimes overlapping transparent blocks of color. All of those intersecting shapes make it difficult for a computer program to separate the background noise from the actual data.
Another example is the test to determine color blindness. Letters and numbers are hidden in a circle filled with different color dots. If you're color blind, you won't be able to see the numbers. For a computer program this can be incredibly difficult, as it requires detecting an edge, as well as recognizing the overall shape. It's difficult even for the most advanced programmer. In this problem we're trying to solve a common issue for many photographers: Plagiarism.
A photographer will take a picture and post it on the Internet, only to discover someone has stolen their image and placed a subset of that image on their website. For example, here is an image, and then a cropped version of the same image. It would be extremely handy to have a program searching the Internet for cropped versions of an original image, so that a photographer could protect their rights. In fact, Google Image Search will do just that, but we're curious how it works and what the required code might look like.
Here's the challenge: Given two images, determine if one image is a subset of the other image. We'll assume that they're both JPEG files, that the resolution is the same, as well as the bit depth. We've provided a set of images. The program should determine which images are cropped versions of other images. Perhaps you'll want to pause and create a solution of your own. How would you solve the problem? In the next videos I'll show you how I solved this challenge.
There are currently no FAQs about Code Clinic: C#.
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.
Your file was successfully uploaded.