簡體   English   中英

Matlab中的Imhist不顯示直方圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM