How can I calculate euclidian distance in RGB spaces for a skin lesion ?

12 visualizzazioni (ultimi 30 giorni)
To be clear I want to find The Euclidean distance D which is calculated between each pixel color and the six colors ( white , red, light brown , dark brown , blue gray and black ). I converted the RGB color space to the CIE Labcolor space but I don't know how to continue . I attach my code so far and an image.
  1 Commento
William Rose
William Rose il 19 Set 2022
WhenI try to runthe script I get the error
Error using imread (line 349)
File "color.png" does not exist.
Error in xromadik (line 32)
rgbImage= imread('color.png');

Accedi per commentare.

Risposta accettata

Image Analyst
Image Analyst il 22 Set 2022
"I want to find the percentage of colour appearance for each one of the six colours (white , red, light brown , dark brown , blue gray and black ).What i have to do?" <== See attached Discriminant Analysis demo. It does exactly that.
  2 Commenti
JovanS
JovanS il 23 Set 2022
Ok your code was really helpful but i have some questions in order to understand how it works.
If i have understand how it works i have to enter 6 as the number of classes (each class is for a specific color from the colors above and then when i have to draw the sample pixel colors i have to draw the whole skin lesion in order to find the percentage of colour appearance for each one of the six colours. Right?

Accedi per commentare.

Più risposte (2)

Image Analyst
Image Analyst il 19 Set 2022
Modificato: Image Analyst il 19 Set 2022
Use this function: deltaE
You will need to calibrate your images with known color standards, otherwise the delta E you get is totally dependent on the lighting you use and your exposure time. See attached tutorial.

William Rose
William Rose il 19 Set 2022
Since there is a file missing which I need to run your code, I will just give a few suggesitons.
  1. Post the simplest possible example that demonstrates the problem or what you are trying to do.
  2. If you want to compute distance between two specific colors in CIE space, use dist=imcolordiff(c1,c2), where c1, c2 are RGB colors.
  3. To get a monochrome image whose gray scale values represent color distance (in CIE space) between corresponding pixels of 2 images, use im3=imcolordiff(im1,im2), where im1, im2 are RGB images.
See imcolordiff help for additional options and examples. Good luck.
  6 Commenti
JovanS
JovanS il 22 Set 2022
I do not have a system or camera to calibrate, I just have two already taken images and i want to find the percentage of colour appearance for each one of the six colours (white , red, light brown , dark brown , blue gray and black ).What i have to do? @Image Analyst
Image Analyst
Image Analyst il 23 Set 2022
You can train it and classify it with a discriminant classifier. See attached demo and adapt as needed.
Or you could use k-nearest neighbors.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by