圖像增強是圖像處理中一個重要的內容,在圖像生成,傳輸或變換的過程中,由於多種因素的影響,造成圖像質量下降,圖像模糊,特征淹沒,給分析和識別帶來困難。因此,按特定的需要將圖像中感興趣的特征友選擇地突出,衰減不需要的特征,提高圖像的可懂度是圖像增強的主要內容。圖像增強不考慮圖像降質的原因,而且改善后的圖像也不一定逼近原圖像,這是它與圖像復原本質的區別。圖像增強的主要目的有兩個:一是改善圖像的視覺效果,提高圖像的清晰度;二是將圖像轉換成一種更適合人類或機器進行分析處理的形式,一邊從圖像中獲取更多有用的信息。
圖像增強方法大致分為兩類:一類是空間域處理法,另一類是頻域處理法。空間域是直接對圖像的像素進行處理,基本上是以灰度映射變換為基礎的,所用的映射變換取決於圖像的特點和增強的目的,主要包括灰度修正,圖像平滑和銳化等。頻域處理法是在圖像的某種變換域內,對變換后的系數進行運算,然后再求其飯變換到原來的空間域得到增強的圖像,主要包括:低通濾波,高通濾波,帶阻濾波,同態濾波等。
1、噪聲
噪聲可以理解為影響傳感器對所接受圖像源信息進行理解或分析的各種因素。噪聲一般是不可預測的隨機信號,它只能用概率統計的方法去認識。噪聲對圖像的輸入,采集和處理的各個環節以及輸出結果全過程都有影響。因此,去噪已經成為圖像處理中極為重要的手段,也是圖像處理領域研究的一個重點。
1.1、噪聲的分類
常見的噪聲有以下幾種:
(1)白噪聲
(2)椒鹽噪聲:是一種在圖像中產生黑色、白色點的脈沖噪聲。該噪聲在圖像中顯現較為明顯,對圖像分割。邊緣檢測、特征提取等后續處理具有嚴重的破壞作用。
(3)沖擊噪聲
(4)量化噪聲
2、圖像質量評價
在進行圖像增強過程中,對一副含有噪聲的圖像在進行去噪之后圖像質量是否有所提高,需要一個評價標准來衡量,因此,簡單地引入圖像的客觀評價標准對去噪前后的圖像質量進行衡量。信噪比是比較常用的一個標准。
圖像的信噪比計算公式如下:
其中,M和N分別是圖像長度和寬度上的像素個數,f(x,y)和g(x,y)分別是原始圖像和去噪后的圖像在點(x,y)處的灰度值。
信噪比的數值越大,說明圖像質量越好。
下面是一段實現該算法的代碼:
CString CImgEnhance::SNR(unsigned char* m_pSrcImgData) { int byteCount; // DIB位圖的字節數 int i; // LPBITMAPINFOHEADER lpbmi; // lpbmi=(LPBITMAPINFOHEADER)lpSrcDIB; // m_pSrcImgData=(LPBYTE)lpbmi lpbmi->biSize sizeof(RGBQUAD)*lpbmi->biClrUsed; //計算圖像信噪比 double temp1=0.0; double temp2=0.0; //處理8位灰度圖像 if (m_nBitCount==8) { //計算整幅DIB位圖的字節數 byteCount =m_imgHeight*m_imgWidth*m_nBitCount/8; for( i=0; i<byteCount; i ) { temp1=temp1 (double)m_pImgData[i]*m_pImgData[i]; temp2=temp2 (double)(m_pImgData[i]-m_pSrcImgData[i])*(m_pImgData[i]-m_pSrcImgData[i]); } } else { AfxMessageBox("只能處理8位灰度圖像!"); return "ERROR"; } double SNR=temp1/temp2; SNR=10*log10(SNR); CString StrSNR; StrSNR.Format("%f",SNR); return StrSNR; }