2014-02-12 40 views
-1

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); 
+0

它爲什麼不起作用?我得到一個三個不同的矩形的圖像,每個代表一個像素。 – Daniel

+0

看看[這個問題](http://stackoverflow.com/q/19280567/2778484)。 – chappjc

回答

2

我建議你閱讀documentation about imshow,或鍵入help imshow並注意以下內容:

如果你的灰度圖像爲單人或雙人,默認顯示範圍 是[0 1]。如果圖像的數據範圍遠遠大於或小於默認的 顯示範圍,則可能需要嘗試將顯示範圍設置爲 ,以查看圖像中使用默認的 顯示範圍不可見的功能。對於具有整數類型所有灰度圖像,默認 顯示範圍爲[intmin(類(I))intmax(類(I))]

在你嘗試使用imshow,值大於1被示出爲白色。這與值是十進制的事實沒有關係。使用:

imshow(image, []); 

如果您想讓顏色圖跨越圖像的整個範圍。或者實際上,只需使用imagesc即可。

+3

你可以通過'imshow(image,[])' – Adiel

+0

@Adiel right來達到同樣的效果,相應編輯。 –