有鑑於大三下修了系上的數位影像處理
加減把作業發一下
有更好的方法歡迎指教
題目說明:
請撰寫程式,要求如下:
1.讀入pout.tif檔,顯示其圖檔及其直方圖。
2.利用直方圖等化法,轉換圖檔內容,,顯示其圖檔及其直方圖。
3.請將直行畫面截圖,放在文件中,並於文件中加上程式碼。
4.不拘程式語言,請勿用現成的函式庫運算,也就是直方圖及直方圖等化轉換需自行撰寫程式。
(已轉成jpg)
直方圖:
在統計學中,直方圖(英語:Histogram)是一種對數據分布情況的圖形表示,是一種二維統計圖表,它的兩個坐標分別是統計樣本和該樣本對應的某個屬性的度量。
直方圖等化:
直方圖均衡化是圖像處理領域中利用圖像直方圖對對比度進行調整的方法。
l 較暗的影像,灰階層次會聚集在數值低的區域。
l 整體看起來明亮的影像,灰階層次會聚集在數值高的區域。
l 對比均衡的影像,灰階層次會平均分散於所有範圍。
算是一種簡單使影像清晰化的方法。
程式碼說明:
考慮一個離散的灰階影像 {x},讓 ni 表示灰階 i 出現的次數,這樣圖像中灰階為 i 的像素的出現概率是
所以說在進行概率計算之前,我們必須要統計此圖在灰階的情況下0~255,每點像素出現的數量有多少,再除以其圖片像素大小grayclone.shape[0]* grayclone.shape[1]
L 是圖像中所有的灰階數,n是圖像中所有的像素數, Px(i) 實際上是像素值為 i 的圖像的直方圖,歸一化到[0,1]。 把對應於 px 的累積分布函數,定義為:
*255的目的是為了將其各點距離拉大,要不然會呈現下圖的狀態
再來就是將原本的值用之前的轉換後的表去做更替,類似查表那樣子
塞在同一張視窗而已,不是重點所以就不贅述了。
總程式碼:
結果圖:
部分內容引用:
視窗化