我想獲得用戶選擇的圖像的像素的RGB值,但是然後我得到這個界限的錯誤。這是代碼:索引越界MATLAB中的錯誤
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);
這是錯誤我得到(當用戶選擇的像素120131):
試圖訪問IMG(120,131,1); 索引必須是正整數或邏輯。
要停止發生此錯誤,我將x和y聲明爲int16,但錯誤仍然存在。然後我試圖手動將像素值,所以我做了這樣的事情:
r = img(229,104,1);
而現在的錯誤是這樣的:
試圖訪問IMG(229,104,1);索引出 範圍,因爲size(img)= [217,331,3]。
這怎麼可能如果像素不是真的越界?代碼有什麼問題?
是的它的工作!但正如你所問,數據類型不會被覆蓋,因爲我放的顯示整數......有點奇怪,但我會用你的建議。 – user2952272
嘗試在調用'numstr'時使用'precision'參數,我非常有信心你會發現它們不是整數。你也可以用'whos'來檢查數據類型。 – am304