How to detect objects in an image based on colour?

6 views (last 30 days)
Faraz
Faraz on 7 Jun 2015
Commented: Amith Kamath on 10 Jun 2015
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?

Accepted Answer

Image Analyst
Image Analyst on 7 Jun 2015
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.
  1 Comment
Amith Kamath
Amith Kamath on 10 Jun 2015
In addition to ImageAnayst's answer, you could also take a look at Using the Color Thresholder App documentation. This would be useful to select the colorspace that works the best for differentiating the text based on colors, and also to choose appropriate thresholds in that colorspace.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!