2017年12月10日 星期日
Python 畫影像的直方圖 (histogram)
對一個256階的灰度影像而言,每個像素值介於0與255之間。影像的直方圖就是將這256個灰度值在影像中出現的次數畫成長條圖。在Python中,可以利用 matplotlib這個package來繪圖。
↓簡單的作法如下
第7行: hist 為一個長度為256的一維陣列,且預設值皆為零;
第8行: 灰度值 intensity 從0..255
第9行: 影像值是否等於灰度值intensity? 將結果儲存於二維陣列A中 (A的值為True或False)
第10行: 將A中元素為True的個數加總,並儲存於一維陣列hist
第12行: 將一維陣列丟給plot
第13行: 繪出結果
↓結果如下
上圖下方有個磁碟片圖示,按下下它可以將此直方圖存起來,以便未來放在簡報或論文中。
也許你會說這個圖形可不可以改顏色、粗細、加文字...... 答案是:可以!
只是圖型的參數實在太多了,就以這個例子而言,我們作一些改變..
↓程式修改的部份如下
第12行: 將圖形物件取名為myplot
第13行: 加X軸文字 Intensity;
第14行: 加Y軸文字 Number of Intensity;
第15行: 設定myplot屬性為 線條顏色為紅色,樣式為虛線
↓結果如下
-- END --
訂閱:
張貼留言 (Atom)
C.-H. Chu 您好
回覆刪除想請教您,若我想知道出現Pixel數值最高次數(頻率)的值
要怎麼計算呢
在矩陣hist內最大的值就是您要的,只是在這個例子hist是numpy的array,所以最大值是np.amax(hist)。
刪除