MATLAB: How to detect objects in an image based on colour

color segmentationcolor spacesimage processingImage Processing Toolboximage segmentationStatistics and Machine Learning Toolbox

I am using a handwriting database for writer recognition. I'm using the QUWI database, it has a sample of an original image and a sample of the image segmented into lines by giving each line a different colour.
For example here is the original image: (couldn't upload it here as it was over 5 MB)
And here is the image where the lines are detected and separated via colour:
Is there anyway I can use the method they used to extract the lines from the original image based on colour. Such as using the colours of this image as a mask?

Best Answer

I have a variety of color segmentation methods in my File Exchange: http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862 Look at them.
It's a little more complicated if you don't know how many colors your graduate student used to write that. Perhaps he should have been an art student instead. Can you assume that you know how many different color pens he used? If so, you can use kmeans() (in the Statistics and Machine Learning Toolbox) to find the centroids of the different colors. You might feed it the LAB color channels and use the Delta E color difference metric to find all pixels in the image within a specified distance of each color centroid.