Recognition of colored percentage of a white paper using Image Processing

1 vue (au cours des 30 derniers jours)
Alberto Mora
Alberto Mora le 18 Nov 2020
Modifié(e) : Alberto Mora le 20 Nov 2020
Hello,
I want to estimate the percentage of the following image (see attachment), where there are different colors and intensity. There is also an annoing shadow in the upper part of the image.
I already tryed to compute the gray scale and set simply a threshold (-->binary image), but this method is not enougth robust and leads wrong results and a partial recognition of the painted stain (eg only the black and green spot).
How can I get a better estimation of such colored % of the image surface (without differentiate between colors)?
At a glance, I think that the answer could be about 25%, but I want to find the exact answer using MATLAB.
Thank you and best regards, A
Edit:
  1. I just added a version without shadows (see right image) for start with a simplier case.
  2. Does it can help to have a picture of a white paper as "reference image" without colors in order to compare it with the colored image?
With shadow Without shadow
  6 commentaires
Alberto Mora
Alberto Mora le 19 Nov 2020
Modifié(e) : Alberto Mora le 19 Nov 2020
I had an idea for a further development: does can help if I add a picture of a "white" paper as reference image for find the differences between the "colored" image (without shadows) and the "white" reference image (without shadows)?
Alberto Mora
Alberto Mora le 20 Nov 2020
Modifié(e) : Alberto Mora le 20 Nov 2020
Small update, I notice that applying a thresholding method on
stdfilt(image_grayScale)
could an interesting solution to divide the background from the colored region (i.e. amplify the difference between background and colored region). It seems working without problems also for shadows image. I will update if there are further improvments.
I check this interesing link, but in this case the usage of simple thresholding on the raw lead to poor results.

Connectez-vous pour commenter.

Réponses (1)

cr
cr le 18 Nov 2020
You can even out the light intensity across the image using imtophat(). Then use segmentation and/or ROI based processing functions -like roicolor(), activecontour, bfscore, etc. Shouldn't be hard.

Catégories

En savoir plus sur Image Processing Toolbox dans Help Center et File Exchange

Produits


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by