Colour and Pattern Matching

4 views (last 30 days)
Kent Yeap
Kent Yeap on 28 Feb 2017
Commented: Image Analyst on 10 Mar 2017
Hi, I am developing a Fabric Pattern and Colour Matching System. I hope to have the right thought process on this project. The system is to find matching Database fabric image based on user’s input of random Testing fabric images. The system is as follow:
  1. Database consists of a number of fabric images, of various colour & pattern (as shown in the attachment).
  2. User inputs random testing images (might / might not exist in the database).
  3. System finds the EXACT matching database fabric image (if available); or shows ALMOST matched database image.
I am wondering what colour space would be more suitable for this system. HSV, RGB or other colour space? Besides, what pattern recognition / feature extraction + classification methods should I use? Currently, I have planned to use normalized cross correlation for pattern recognition; however, besides this method, are there any other better pattern recognition methods?
Any links to similar/existing projects is highly appreciated as well!
[Add. Info: Full database fabric image & testing images can be found in this Google Drive link https://drive.google.com/drive/folders/0B3kRUtBpzKROamx3S1dkLUtNRFE?usp=sharing
Thank you in advance for your help!
Database Images

Accepted Answer

Image Analyst
Image Analyst on 28 Feb 2017
Normalized cross correlation is good for finding where a pattern exists in an image, and how closely it matches the template. It will not be so good when the scale (magnification) is not matched up, like the pattern template is in the reference image but just has a different size, or if the pattern template is rotated. For scale and rotation invariant metrics, you might want to look at Hu's moments http://www.youtube.com/watch?v=Nc06tlZAv_Q. There are also a number of other metrics you could think up, like a list of dominant colors (see http://www.mathworks.com/matlabcentral/fileexchange/28164-color-frequency-image ) and their area fractions, certain sizes or shapes of things in the image, etc. You could build up a feature vector of a bunch of things. So you look at the overall accuracy of the things as a group rather than just using any one particular metric. This is the basis of how CBIR works, and you might investigate that field for more ideas.
As an aside, you might be interested in the color thesaurus: http://colorthesaurus.epfl.ch/
  23 Comments
Kent Yeap
Kent Yeap on 10 Mar 2017
Alright, thank you! I will install the color inspector to compare the color spaces as well.
Image Analyst
Image Analyst on 10 Mar 2017
MATLAB has a similar function called colorcloud() but I don't think it's quite as good (yet) as the ImageJ version.

Sign in to comment.

More Answers (0)

Categories

Find more on Recognition, Object Detection, and Semantic Segmentation in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!