我一直在尝试使用以下代码
获取少量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]
。
有人可以告诉我我的代码有什么问题吗?
答案 0 :(得分:3)
RGB色彩映射的范围必须为[0,1](双精度)才能使rgb2hsv正常工作;你的问题是像素矩阵颜色范围从0到255(int)。你必须找到解决这个问题的方法。 im2double可能有帮助。
有关详细信息,请参阅the rgb2hsv documentation。
此外,我建议您使用imfinfo了解您正在处理的图片类型,然后在您的代码中采取相应的行动。