rgb2lab color conversion

4 vues (au cours des 30 derniers jours)
Foram Sanghavi
Foram Sanghavi le 31 Oct 2017
Commenté : Image Analyst le 31 Oct 2017
Hi, I am using rgb2lab color space conversion and am receiving values in the range of e+03, are these values correct?
  2 commentaires
Stephen23
Stephen23 le 31 Oct 2017
@Foram Sanghavi: please show us the input values that produce that output.
Foram Sanghavi
Foram Sanghavi le 31 Oct 2017
If RGB values are 253,244,245 the Lab values I am getting is 6.5651e+03, 249.1664 and 58.4119 respectively similarly for RGB 242,205,220 i a getting values 6.0022e+03,1.1819e+03 and -225.2120 respectively.

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 31 Oct 2017
Modifié(e) : Stephen23 le 31 Oct 2017
Either convert the input argument to uint8 or divide it by 255 and you will get the correct output. Many MATLAB color/image functions assume that a double input is in the range 0-1, which clearly your data is not.
  2 commentaires
Foram Sanghavi
Foram Sanghavi le 31 Oct 2017
Thank you so much this has helped me a lot. Should I do same while converting back lab2rgb? because I am getting negative values in the RGB plane especially in G plane.
Image Analyst
Image Analyst le 31 Oct 2017
I think this will explain everything. Write back if it doesn't.
rgb = uint8([253,244,245])
lab = rgb2lab(rgb)
rgb = lab2rgb(lab) % Doubles in the range 0-1
rgb = uint8(255 * rgb) % Integers in the range 0-255
You'll see
rgb =
1×3 uint8 row vector
253 244 245
lab =
96.8926628404762 3.17508673704292 0.590818112564628
rgb =
0.992156862745098 0.956862745098039 0.96078431372549
rgb =
1×3 uint8 row vector
253 244 245

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by