我正在尝试获取用户选择的图像像素的 RGB 值,但随后出现了超出范围的错误。这是代码:
x = int16(zeros(10,1));
y = int16(zeros(10,1));
imshow(img);
[x,y] = ginput;
disp(['x = ' num2str(x)]);
disp(['y= ' num2str(y)]);
r = img(x,y,1);
g = img(x,y,2);
b = img(x,y,3);
这是我得到的错误(当用户选择像素 120,131 时):
尝试访问 img(120,131,1);index 必须是正整数或逻辑整数。
为了停止出现此错误,我将 x 和 y 声明为 int16,但错误仍然出现。然后我尝试手动输入像素的值,所以我做了这样的事情:
r = img(229,104,1);
现在的错误是这样的:
尝试访问 img(229,104,1);索引超出范围,因为 size(img)=[217,331,3]。
如果像素不是真的越界,这怎么可能?代码有什么问题?