A useful technique in computer vision is edge detection, where the boundaries between objects are automatically identified. Having these boundaries makes it easy to segment the image (break it up into separate objects or areas), which can then be recognised separately.
For example, here's a photo where you might want to recognise individual objects:
And here's a version that has been processed by an edge detection algorithm:
Notice that the grain on the table above has affected the quality; some pre-processing to filter that would have helped!
Earlier, we looked at how we could use a convolutional kernel to blur an image. One of the common techniques in edge detection also requires a convolutional kernel. If we multiply the values of pixels on one side of each point on the image by a negative amount, and pixels on the other side by a positive amount, then combine the results, we'll discover a number which represents the difference between pixels on the two sides. This technique is called finding the image gradient. The following interactive allows you to do that, then apply a threshold to the result so that you can begin to spot likely edges in a picture.
There are a few commonly used convolutional kernels that people have come up with for finding edges. After you've had a go at coming up with some of your own, have a look at the Prewitt operator, the Roberts cross and Sobel operator on wikipedia. Try these out in the interactive. What results do you get from each of these?
There are a number of good edge detections out there, but one of the more famous ones is the Canny edge detection algorithm. This is a widely used algorithm in computer vision, developed in 1986 by John F. Canny. You can read more about Canny edge detection on Wikipedia.
You could extend the techniques used in the above interactive by adding a few more processing stages. If you were to apply a gaussian filter to the image first, then do some work to favour edges that were connected to other edges, then you would be on your way to implementing the Canny edge detector.
With the canny edge detection interactive above, try uploading different images and determining how good different convolutional kernels are at detecting boundaries in the image. Capture images to put in your report as examples to illustrate your experiments with the detector.