[英]Imhist in matlab does not display the histogram
我有一個名為boat的圖像存儲在.mat文件(Boat.mat)中,我使用load('Boat.mat')
加載了文件。如果鍵入imshow(boat)
它將僅顯示一個空白框。 我只能使用imshow(boat,[0 255])
查看圖像。 當我使用imhist(boat)
我再次得到一個空白框。 我怎么看直方圖。 我需要看直方圖。 我也不能使用histeq(boat)
進行直方圖均衡。
任何幫助將不勝感激。 謝謝
這是到Boat.mat文件的鏈接http://www.engr.colostate.edu/ECE513/SP11/Boat.mat
默認情況下, imshow
假定值為0到1之間的浮點圖像,這就是為什么圖像(值從0到255)完全顯示為白色-所有值均大於1的原因。 imshow
以不同的方式縮放值,但是如果您只是先重新縮放圖像,然后像這樣保持圖像,則可能會更容易:
boatDbl = boat / 255;
figure;
imshow(boatDbl);
figure;
imhist(boatDbl);
編輯:由於夏嘉曦指出以下,出現這種情況是因為imshow
和其他預測基於矩陣的數據類型值的范圍-因為你的boat
矩陣是一個double
,他們承擔的范圍為0〜1。因此另一種解決方法是將矩陣轉換為integer
類型,這將使imshow
假定范圍為0到255:
boat = uint8(boat);
關於imhist(image)
部分,您可能希望先嘗試將圖像轉換為灰度(即使它最初是灰度圖像),如下所示:
newImage = rgb2gray(oldImage);
之后,您應該能夠執行imhist(newImage)
而沒有任何問題。 讓我知道它是否有效!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.