1. 程式人生 > >基於matlab的數字影象處理GUI設計

基於matlab的數字影象處理GUI設計

簡單的介面實現的幾個簡單的功能,只支援JPG格式影象,還有很多需要改進的。


1、灰度化:提取jpg影象各個畫素點的R、G、B三個型別的值,再對其進行加權平均。最後得到一個通道紅綠藍三個型別的加權平均。
公式為:ima=0.299*ima_red+0.587*ima_green+0.114*ima_blue。


2、二值化:二值化是在影象灰度化的基礎上進行的,通過比較影象每個畫素點的灰度值與閾值的大小關係來設定該點為0或1。


3、中值濾波:基於排序統計理論的一種能有效抑制噪聲的非線性平滑濾波訊號處理技術。中值濾波的特點即是首先確定一個以某個畫素為中心點的鄰域,一般為方形鄰域,也可以為圓形、十字形等等,然後將鄰域中各畫素的灰度值排序,取其中間值作為中心畫素灰度的新值,這裡領域被稱為視窗,當視窗移動時,利用中值濾波可以對影象進行平滑處理。其演算法簡單,時間複雜度低,但其對點、線和尖頂多的影象不宜採用中值濾波。本系統中值濾波設定的核為長寬都是6的正方形,在此鄰域內來找中值。

4、低通濾波:在低通濾波中,低頻訊號能正常通過,而超過設定臨界值的高頻訊號則被阻隔、減弱。首先對影象進行傅立葉變換,接著將FFT的DC分量移到頻譜中心,指定濾波器截止頻率和濾波半徑後,通過低通濾波轉換函式與該頻率進行比較d=sqrt((i-n1)^2+(j-n2)^2)。若訊號大於該頻率,則置為0。


5、均值濾波:均值濾波是典型的線性濾波演算法,它是指在影象上對目標畫素給一個濾波核,該核包括了其周圍的臨近畫素,再用核中的全體畫素的平均值來代替原來畫素值。在本專案中,需先給出設計的正方形核的邊長,之後便可以用指定大小的濾波核進行均值濾波。

6、高斯濾波:高斯濾波是一種線性平滑濾波,適用於消除高斯噪聲,廣泛應用於影象處理的減噪過程。高斯濾波是對整幅影象進行加權平均的過程,每一個畫素點的值,都由其本身和鄰域內的其他畫素值經過加權平均後得到。高斯濾波的具體操作是:用一個模板(或稱卷積、掩模)掃描影象中的每一個畫素,用模板確定的鄰域內畫素的加權平均灰度值去替代模板中心畫素點的值用。高斯平滑濾波器對於抑制服從正態分佈的噪聲非常有效。

7、形態學-腐蝕:一般腐蝕操作對二值圖進行處理,腐蝕操作如左圖,當畫素點(i,j+1)和(i+1,j)為1時則(i,j)為1。腐蝕是一種消除邊界點,使邊界向內部收縮的過程。可以用來消除小且無意義的目標物。如果兩目標物間有細小的連通,可以選取足夠大的結構元素,將細小連通腐蝕掉。

8、直方圖統計:灰度直方圖是關於灰度級分佈的函式,是對影象中灰度級分佈的統計。灰度直方圖是將數字影象中的所有畫素,按照灰度值的大小,統計其出現的頻率。影象直方圖由於其計算代價較小,且具有影象平移、旋轉、縮放不變性等眾多優點,廣泛地應用於影象處理的各個領域。

9、sobel:影象的邊緣是灰度或結構等資訊的突變處,邊緣是一個區域的結束,也是另一個區域的開始,利用該特徵可以分割影象。Sobel運算元是一階導數的邊緣檢測運算元,在演算法實現過程中,通過3×3模板作為核與影象中的每個畫素點做卷積和運算,然後選取合適的閾值以提取邊緣。由於只採用2個方向的模板。

10、canny:Canny檢測主要分為四個步驟。首先為防止噪聲干擾,先對影象進行去噪。接著可按照sobel的方式來計算影象梯度的幅值和方向。由於梯度大的不一定就是邊緣,可以通過每個畫素點的方向來確定該畫素點在此鄰域範圍內是否是最大值,若是,則保留該畫素點,不是則捨棄。最後用雙閾值法再剔除一部分畫素點並連線邊緣。


程式下載:http://download.csdn.net/detail/jidushanzhu/9864612