RGB 2 L*A*B*
4 次查看(过去 30 天)
显示 更早的评论
Hello, I tried to convert an image from rgb to LAB colorspace. I used the code from an example I found on matworks:
cform2lab = makecform('srgb2lab');
LAB = applycform(rgbimage, cform2lab);
I read that LAB(:,:,1) should have values between 0 and 100 but I have values up to 255. I think a part of the transformation failed... Why? (rgbimage is a (240x320x3 uint8))
0 个评论
采纳的回答
David Sanchez
2013-9-2
LAB (:,:,1) can have values above 100. See if the following code (taking from matlab documentation) works on your machine:
rgb = imread('peppers.png');
cform = makecform('srgb2lab');
lab = applycform(rgb,cform);
image(lab)
See that lab(:,:,1) has values above 100 and the conversion works.
If any error is yielded, please, paste it here to see what is the problem.
更多回答(2 个)
Image Analyst
2013-9-3
The help for applycform says "The output array B has the same class as A" so if you pass in uint8, you'll get uint8 out. If you use im2double() to cast to double in the range 0-1 then you'll get out 0-1 and you can then multiply by 100.
0 个评论
sundari ravi
2018-12-12
i want to know what is the advandage of using L*a*b* than any other segmentation algorithm. will it help me with gray scale image
1 个评论
Image Analyst
2018-12-12
No it will not. For a gray scale image, all the pixels would be along the L axis. There is no A and B component for a gray scale image, by definition. So there is no reason at all to deal with LAB when you're dealing with a gray acale image. You'll have to use other segmentation methods, such as simple thresholding, or whatever your image needs. Be sure to see my Image Segmentation Tutorial, which works on gray scale images, and my color segmentation tutorials, in my File Exchange.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Modify Image Colors 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!