Join David Powers for an in-depth discussion in this video Identify the image subset, part of Code Clinic: PHP.
(Machine noises) -Hello and welcome to Code Clinic. My name is David Powers. Code Clinic is a monthly course where a unique problem is introduced to a collection of lynda.com authors. In response, each author creates a solution using their programming language of choice. I'm using PHP. Through Code Clinic, you can learn different approaches to solving a problem. The pros and cons of different languages as well as tips and tricks to incorporate into your own coding practices.
This month's problem focuses on 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 the color of the pixel and, in some cases, the pixel's transparency. 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 obscured by random lines, 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 problem 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's an image. And then a cropped version of that image. It would be extremely useful to have a program searching the internet for cropped versions of an original image so the photographers 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 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 return a table showing which images are cropped versions of other images. Perhaps you'd like 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 with PHP and a little outside help from another program.
David introduces challenges and provides an overview of his solutions in PHP. Challenges 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 challenges in languages like C#, C++, Java, Python, and Ruby.
Skill Level Intermediate
PHP with MySQL Essential Trainingwith Kevin Skoglund14h 32m Beginner
Exporting Data to Files with PHPwith David Powers3h 42m Intermediate
Problem One: Statistical Analysis
Problem Two: Image Analysis
Problem Three: Eight Queens
Problem Four: Accessing Peripherals
Problem Five: Recursion and Directories
Problem Six: Building the Web
- Mark as unwatched
- Mark all as unwatched
Are you sure you want to mark all the videos in this course as unwatched?
This will not affect your course history, your reports, or your certificates of completion for this course.Cancel
Take notes with your new membership!
Type in the entry box, then click Enter to save your note.
1:30Press on any video thumbnail to jump immediately to the timecode shown.
Notes are saved with you account but can also be exported as plain text, MS Word, PDF, Google Doc, or Evernote.