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

10 Ansichten (letzte 30 Tage)
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 Kommentar
William Rose
William Rose am 19 Sep. 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');

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Image Analyst
Image Analyst am 22 Sep. 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 Kommentare
JovanS
JovanS am 23 Sep. 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?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Image Analyst
Image Analyst am 19 Sep. 2022
Bearbeitet: Image Analyst am 19 Sep. 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 am 19 Sep. 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 Kommentare
JovanS
JovanS am 22 Sep. 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 am 23 Sep. 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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Recognition, Object Detection, and Semantic Segmentation finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by