2013-04-14 82 views
1

我有存儲在一個文件.MAT(Boat.mat) 一個名爲船像我裝使用load('Boat.mat') 文件如果鍵入imshow(boat)它只是顯示一個空白框。 我只能用imshow(boat,[0 255])查看圖片。 當我使用imhist(boat)我再次得到一個空白的框。我如何看直方圖。我需要看直方圖。此外,我無法使用histeq(boat)進行直方圖均衡。Imhist在MATLAB不顯示直方圖

任何幫助將不勝感激。 感謝

這裏是鏈接到Boat.mat文件 http://www.engr.colostate.edu/ECE513/SP11/Boat.mat

回答

5

默認情況下,imshow假設有0和1之間的值的浮點圖像,這就是爲什麼你的形象(從0到值255)完全顯示爲白色 - 所有值都大於1.如您所見,您可以強制imshow以不同的方式縮放這些值,但如果您只是首先重新縮放圖像,並且保持如下狀態,則可能會更容易:

boatDbl = boat/255; 

figure; 
imshow(boatDbl); 

figure; 
imhist(boatDbl); 

編輯:正如Shai指出的,發生這種情況是因爲imshow和其他人基於矩陣的數據類型預測值的範圍 - 因爲您的boat矩陣是double,他們假設範圍爲0到1.因此,替代修復是將矩陣轉換爲integer類型,這將使​​imshow呈現範圍爲0至255:

boat = uint8(boat); 
+2

人們也可以用'uint8'類型工作:'船= UINT8(船);'。 – Shai

+0

好的,謝謝。 – jazzbassrob

+0

謝謝你的幫助。 – Abhilash