imshow不能很好地與值(特別是十進制)一起工作,其中imagesc像工作一樣具有相同的值。爲什麼imshow在某些輸入上不工作,而imagesc正常工作?
例子:
image = [0 0 0; 200.50 200 200; 128 128 128];
figure;
colormap gray;
imshow(image);
figure;
colormap gray;
imagesc(image);
imshow不能很好地與值(特別是十進制)一起工作,其中imagesc像工作一樣具有相同的值。爲什麼imshow在某些輸入上不工作,而imagesc正常工作?
例子:
image = [0 0 0; 200.50 200 200; 128 128 128];
figure;
colormap gray;
imshow(image);
figure;
colormap gray;
imagesc(image);
我建議你閱讀documentation about imshow
,或鍵入help imshow
並注意以下內容:
如果你的灰度圖像爲單人或雙人,默認顯示範圍 是[0 1]。如果圖像的數據範圍遠遠大於或小於默認的 顯示範圍,則可能需要嘗試將顯示範圍設置爲 ,以查看圖像中使用默認的 顯示範圍不可見的功能。對於具有整數類型所有灰度圖像,默認 顯示範圍爲[intmin(類(I))intmax(類(I))]
在你嘗試使用imshow
,值大於1被示出爲白色。這與值是十進制的事實沒有關係。使用:
imshow(image, []);
如果您想讓顏色圖跨越圖像的整個範圍。或者實際上,只需使用imagesc
即可。
你可以通過'imshow(image,[])' – Adiel
@Adiel right來達到同樣的效果,相應編輯。 –
它爲什麼不起作用?我得到一個三個不同的矩形的圖像,每個代表一個像素。 – Daniel
看看[這個問題](http://stackoverflow.com/q/19280567/2778484)。 – chappjc