Matlab:RGB到HSV特定像素值不起作用

时间:2015-03-10 14:33:36

标签: matlab image-processing computer-vision

我一直在尝试使用以下代码

获取少量RGB像素的HSV值
im = imread('peppers.png'); %// example image
c = [12 146 410]; %// column coordinates of desired pixels
r = [104 156 129]; %// row coordinates of desired pixels
pixels = impixel(im,c,r); %// rgb values of pixels
hsv = rgb2hsv(pixels); %// convert to hsv
hue = hsv(:,1); %// hue is first column of hsv

但我收到错误Valid colormaps cannot have values outside the range [0,1]

有人可以告诉我我的代码有什么问题吗?

1 个答案:

答案 0 :(得分:3)

RGB色彩映射的范围必须为[0,1](双精度)才能使rgb2hsv正常工作;你的问题是像素矩阵颜色范围从0到255(int)。你必须找到解决这个问题的方法。 im2double可能有帮助。

有关详细信息,请参阅the rgb2hsv documentation

此外,我建议您使用imfinfo了解您正在处理的图片类型,然后在您的代码中采取相应的行动。