圖像的平滑處理_第1頁
圖像的平滑處理_第2頁
圖像的平滑處理_第3頁
圖像的平滑處理_第4頁
圖像的平滑處理_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第5章圖像的平滑處理本章要點:

平滑處理的基本方法

噪聲消除法

鄰域平均法

中值濾波

產(chǎn)生噪聲5.1平滑處理的基本方法

1.線性平滑

線性平滑就是對每一個像素點的灰度值用它的鄰域值來代替,其鄰域大小為:N×N,N一般取奇數(shù)。如3×3均值濾波、N×N均值濾波器。

2.非線性平滑非線性平滑是對線性平滑的一種改進,即不對所有像素都用它的鄰域平均值來代替,而是取一個閾值,當(dāng)像素灰度值與其鄰域平均值之間的差值大于已知值時才以均值代替;當(dāng)像素灰度值與其鄰域平均值之間的差值不大于閾值時取其本身的灰度值。3.自適應(yīng)平滑自適應(yīng)控制是一種根據(jù)當(dāng)時、當(dāng)?shù)厍闆r來進行控制的方法,所以這種算法要有一個適應(yīng)的目標(biāo)。根據(jù)目的的不同,可以有各種各樣的自適應(yīng)圖像處理方法??紤]到圖像中目標(biāo)物體和背景一般都具有不同的統(tǒng)計特性,即不同的均值和方差,為保留一定的邊緣信息,可采用自適應(yīng)的局部平滑濾波。

5.2噪聲消除法

本節(jié)介紹對于二值圖像上噪聲的消除方法。二值圖像的黑白點噪聲濾波消除孤立黑像素點5.2.1二值圖像的黑白點噪聲濾波1.理論基礎(chǔ)本程序消去二值圖像f(i,j)上的黑白的噪聲,當(dāng)像f(i,j)周圍的8個像素的平均值為a時,若|f(i,j)-a|的值在127.5以上,則對f(i,j)的黑白進行翻轉(zhuǎn),若不到127.5則f(i,j)不變。

2.實現(xiàn)步驟

(1)取得圖像大小、數(shù)據(jù)區(qū),并把數(shù)據(jù)區(qū)復(fù)制到緩沖區(qū)中;(2)循環(huán)取得各點像素值;(3)取得該點周圍8像素值的平均值;(4)平均值與該點像素值相比,若大于127.5則把該點顏色反轉(zhuǎn);(5)把緩沖區(qū)中改動的數(shù)據(jù)復(fù)制到原數(shù)據(jù)區(qū)中。3.程序代碼//用3*3屏蔽窗口的8近鄰均值進行濾波

for(intj=1;j<height-1;j++) { for(inti=1;i<wide-1;i++) { averg=0;

averg=(int)((p_data[(j-1)*wide+(i-1)]+p_data[(j-1)*wide+i]

+p_data[(j-1)*wide+(i+1)]+p_data[j*wide+(i-1)] +p_data[j*wide+i+1]+p_data[(j+1)*wide+(i-1)]+p_data[(j+1)*wide+i]+p_data[(j+1)*wide+i+1])/8);//求周圍8近鄰均值

if(abs(averg-p_temp[j*wide+i])>127.5) p_temp[j*wide+i]=averg; } }4.處理效果

(a)原圖(b)二值圖像的黑白點噪聲濾波

圖5-1二值圖像的黑白點噪聲濾波

5.2.2

消除孤立黑像素點1.理論基礎(chǔ)

對圖像像素的處理方式上可以劃分為點處理和區(qū)域處理。點處理是一種輸出像素值僅取決于輸入像素值的圖像處理方法;區(qū)域處理的輸出像素值不僅與輸入的像素值有關(guān),而且與輸入像素在一定的范圍內(nèi)的相鄰像素值有關(guān)。

本程序在二值圖像f中,消除孤立于周圍的黑像素點(變成白的)。像素的四鄰域和八鄰域關(guān)系如圖5-2連通圖所示。

************

四鄰域八鄰域圖5-2連通圖在4點鄰域的情況下,若黑像素f(i,j)的上下左右4個像素全為白(0),則f(i,j)也取為0。

在8點鄰域的情況下,若黑像素f(i,j)的周圍8個像素全為白(0),則f(i,j)也取為0。2.實現(xiàn)步驟

(1)取得圖像大小、數(shù)據(jù)區(qū),并把數(shù)據(jù)區(qū)復(fù)制到緩沖區(qū)中;(2)循環(huán)取得各點像素值;(3)判斷為4連接或8連接;(4)為4連接時,若該點上下左右4個像素全為白,則該點置白;為8連接時,若該點周圍8個像素全為白,則該點置白;(5)

把緩沖區(qū)中改動的數(shù)據(jù)復(fù)制到原數(shù)據(jù)區(qū)中。

3.程序代碼//4連接的情況下,消去上下左右都為255(白點)的孤立黑點

if(connec==4){ for(intj=1;j<height-1;j++) { for(inti=1;i<wide-1;i++) {

if(*(p_temp+wide*j+i)==255) continue; if((*(p_temp+wide*(j-1)+i)+*(p_temp+wide*(j+1)+i)+*(p_temp+wide*j+i-1)

+*(p_temp+wide*j+i+1))==255*4)

*(p_data+wide*j+i)=255; } }} //8連接的情況下,消去周圍都為255(白點)的孤立黑點

if(connec==8){ for(intj=1;j<height-1;j++) { for(inti=1;i<wide-1;i++) { if(*(p_temp+wide*j+i)==255) continue;if((*(p_temp+wide*(j-1)+i)+*(p_temp+wide*(j+1)+i)+*(p_temp+wide*j+i-1)+ *(p_temp+wide*j+i-1)+*(p_temp+wide*(j-1)+i-1)+*(p_temp+wide*(j+1)+i+1)+ *(p_temp+wide*(j-1)+i+1)+*(p_temp+wide*(j+1)+i-1))==255*8) *(p_data+wide*j+i)=255; } } }4.效果對比圖

(a)原圖

(b)4連接消除孤立點的效果圖(c)8連接消除孤立點的效果圖圖5-3消除孤立點效果圖5.3鄰域平均法本節(jié)介紹的基于鄰域的平滑方法有:

3*3均值濾波;

超限鄰域平均法;

N*N均值濾波器;

選擇式掩模平滑。

5.3.1

3×3均值濾波

1.理論基礎(chǔ)設(shè)f(i,j)為給定的含有噪聲的圖像,經(jīng)過簡單鄰域平均處理后為g(i,j),在數(shù)學(xué)上可表現(xiàn)為g(i,j)=∑f(i,j)/M其中(i,j)

式中S是所取鄰域中的各鄰近像素的坐標(biāo),M是鄰域中包含的鄰近像素的個數(shù)

對于鄰域可以有不同的選取方式,如下所示:

模板1模板2模板3本程序中采用“模板2”,即把當(dāng)前圖像f(i,j)周圍8個像素的平均灰度作為該像素值。

2.實現(xiàn)步驟(1)取得圖像大小、數(shù)據(jù)區(qū),并把數(shù)據(jù)區(qū)復(fù)制到緩沖區(qū)中;(2)循環(huán)取得各點像素值;(3)取得該點周圍8像素值的平均值;(4)把緩沖區(qū)中改動的數(shù)據(jù)復(fù)制到原數(shù)據(jù)區(qū)中。3.程序代碼

//用3*3屏蔽窗口的8近鄰均值進行濾波for(intj=1;j<height-1;j++){ for(inti=1;i<wide-1;i++) { averg=0; //求周圍8近鄰均值

averg=(int)(p_data[(j-1)*wide+(i-1)]+p_data[(j-1)*wide+i] +p_data[(j-1)*wide+(i+1)]+p_data[j*wide+(i-1)] +p_data[j*wide+i+1]+p_data[(j+1)*wide+(i-1)] +p_data[(j+1)*wide+i]+p_data[(j+1)*wide+i+1])/8; p_temp[j*wide+i]=averg;}}4.效果對比圖

(a)原圖(b)鄰域平均法

圖5-4鄰域平均法5.3.2超限鄰域平均法

1.理論基礎(chǔ)閾值的鄰域平均法以某個灰度值T作為閾值,如果某個像素的灰度大于其鄰近像素的平均值

,并超過閾值,才使用平均灰度置換這個像素灰度,它的數(shù)學(xué)表達式:

f(i,j)若(f(i,j)=f(i,j)-f(i,j))>T,g(i,j)=

(5-1)f(i,j)其它。2.實現(xiàn)步驟(1)取得圖像大小、數(shù)據(jù)區(qū),并把數(shù)據(jù)區(qū)復(fù)制到緩沖區(qū)中;(2)循環(huán)取得各點像素值;(3)取得該點周圍8像素值的平均值;(4)判斷該點的像素值是否大于平均值,若大于平均值則將平均值賦于該點,否則還保留原像素的灰度值。(5)把緩沖區(qū)中改動的數(shù)據(jù)復(fù)制到原數(shù)據(jù)區(qū)中。3.程序代碼

//用3*3屏蔽窗口的8近鄰均值進行濾波for(intj=1;j<height-1;j++){ for(inti=1;i<wide-1;i++) { averg=0; //求周圍8近鄰均值

averg=(int)(p_data[(j-1)*wide+(i-1)]+p_data[(j-1)*wide+i]

+p_data[(j-1)*wide+(i+1)]+p_data[j*wide+(i-1)]

+p_data[j*wide+i+1]+p_data[(j+1)*wide+(i-1)] +p_data[(j+1)*wide+i]+p_data[(j+1)*wide+i+1])/8; if(abs(p_temp[j*wide+i]-averg)>T) p_temp[j*wide+i]=averg;} }4.效果圖

圖5-5超限鄰域平均法(閾值為100)

5.3.3N×N均值濾波器1.理論基礎(chǔ)在本程序中當(dāng)灰度圖像f中以像素f(i,j)為中心的N×N屏蔽窗口(N=3,5,7…)內(nèi)平均灰度值為a時,無條件作f(i,j)=a處理,N由用戶給定,且取N值越大,噪聲減少越明顯。但平均是以圖像的模糊為代價的。2.實現(xiàn)步驟

(1)取得圖像大小、數(shù)據(jù)區(qū),并把數(shù)據(jù)區(qū)復(fù)制到緩沖區(qū)中;(2)取得N值;(3)循環(huán)取得各點像素值;(4)算出以該點像素為中心的N×N屏蔽窗口內(nèi)平均值;

(5)把該點像素值置為平均值;(6)把緩沖區(qū)中改動的數(shù)據(jù)復(fù)制到原數(shù)據(jù)區(qū)中。

3.程序代碼

//用N*N屏蔽窗口平均化

for(intj=n2;j<height-n2;j++) { for(inti=n2;i<wide-n2;i++) { //求N*N屏蔽窗口內(nèi)的總和sum sum=0; for(yy=j-n2;yy<=j+n2;yy++) for(xx=i-n2;xx<=i+n2;xx++) sum+=p_data[yy*wide+xx]; //把n*n屏蔽窗口內(nèi)的平均值四舍五入后作為顯示圖像像素值

p_temp[j*wide+i]=(int)((float)sum/(n*n)+0.5);

} }5.3.4選擇式掩模平滑1.理論基礎(chǔ)

選擇式掩模平滑法取5×5窗口,如圖5-2所示。在窗口內(nèi)以中心像素f(i,j)為基準(zhǔn)點,制作4個五邊形、4個六邊形、1個邊長為3的正方形共9種形狀的屏蔽窗口,分別計算每個窗口內(nèi)的平均值及方差,由于含有尖銳邊沿的區(qū)域,方差必定較平緩區(qū)域為大,因此采用方差最小的屏蔽窗口進行平均化,這種方法在完成濾波操作的同時,又不破壞區(qū)域邊界的細節(jié)。這種采用9種形狀的屏蔽窗口,分別計算各窗口內(nèi)的灰度值方差,并采用方差最小的屏蔽窗口進行平均化方法,也稱作自適應(yīng)平滑方法。2.實現(xiàn)步驟(1)取得圖像大小、數(shù)據(jù)區(qū),并把數(shù)據(jù)區(qū)復(fù)制到緩沖區(qū)中;(2)循環(huán)取得各點像素值;分別計算各掩模的均值(ai)及方差(ki);i=1,2,3...,9(3)在此基礎(chǔ)上,對ki排序,最小方差Kimin

所對應(yīng)的掩模的灰度級均值ai

作為f(i,j)的平滑輸出,(凡含有尖銳邊沿的區(qū)域,方差必定較平緩區(qū)域為大)G(i,j)。(4)同樣的方法作用于每一個像素(即窗口是5×5,邊緣兩行兩列如不作延伸,將處理不到),即可完成全幀圖像的平滑。(5)把緩沖區(qū)中改動的數(shù)據(jù)復(fù)制到原數(shù)據(jù)區(qū)中。3.程序代碼voidZaoShengXiaoChuDib::jubupingjun()

參見光盤程序代碼4處理效果

(a)原圖

(b)7*7均值濾波(c)

選擇式掩模平滑法5.4中值濾波一般地,設(shè)有一個一維序列?1,?2,?3,……,?n。取該窗口長度(點數(shù))為m(m為奇數(shù)),對次一維序列進行中值濾波,就是從序列中相繼抽取出m個數(shù)?i-v,

……,?i-1,?i,?i+1,

……,?i+v;其中?i為窗口的中心點值,v=(m-1)/2。再將這m個點值按其數(shù)值大小排序,取中間的那個數(shù)作為濾波輸出,用數(shù)學(xué)公式表示為:yi=Med?i-v,

……,?i-1,?i,?i+1,…,?i+v其中i∈Z,v=(m-1)/2。常用的二維中值濾波窗口形狀有線狀、方形、圓形、十字形等。下面主要介紹:

N×N中值濾波器;十字型中值濾波器;

N×N最大值濾波器。5.4.1N*N中值濾波器1.理論基礎(chǔ)本程序計算灰度圖像f中以像素f(i,j)為中心的N×N屏蔽窗口(N=3,5,7…)內(nèi)灰度的中值為u,

無條件作f(i,j)=u處理,n由用戶給定。2.實現(xiàn)步驟

(1)取得圖像大小、數(shù)據(jù)區(qū),并把數(shù)據(jù)區(qū)復(fù)制到緩沖區(qū)中;(2)取得N值;(3)循環(huán)取得各點像素值;(4)對以該點像素為中心的N×N屏蔽窗口包括的各點像素值進行排序,得到中間值。(5)把該點像素值置為中間值;(6)把緩沖區(qū)中改動的數(shù)據(jù)復(fù)制到原數(shù)據(jù)區(qū)中。3.程序代碼

voidZaoShengXiaoChuDib::nnzhong(intn)

參見光盤程序代碼5.4.2十字型中值濾波器

1理論基礎(chǔ)本程序計算灰度圖像f中以像素f(i,j)為中心得十字型屏蔽窗口(十字型的縱向和橫向的長度為N,N=3,5,7…)內(nèi)灰度值的中值u,

無條件作f(i,j)=u處理,N由用戶給定。

圖5-75×5十字型中值濾波器2.實現(xiàn)步驟

(1)取得圖像大小、數(shù)據(jù)區(qū),并把數(shù)據(jù)區(qū)復(fù)制到緩沖區(qū)中;(2)取得N值;(3)循環(huán)取得各點像素值;(4)計算以該像素為中心的型屏蔽窗口(十字型的縱向和橫向的長度為N)內(nèi)灰度值中值;(5)把該點像素值置為中間值;(6)把緩沖區(qū)中改動的數(shù)據(jù)復(fù)制到原數(shù)據(jù)區(qū)中。

3.程序代碼

voidZaoShengXiaoChuDib::shizi(intn)

參見光盤程序代碼5.4.3N×N最大值濾波器1理論基礎(chǔ)本程序計算灰度圖像f中以像素f(i,j)為中心的N×N屏蔽窗口(N=3,5,7…)內(nèi)灰度的最大值為u,無條件作f(i,j)=u處理,N由用戶給定2.實現(xiàn)步驟(1)取得圖像大小、數(shù)據(jù)區(qū),并把數(shù)據(jù)區(qū)復(fù)制到緩沖區(qū)中;(2)取得N值;(3)循環(huán)取得各點像素值;(4)取得以該點為中心的N×N屏蔽窗口包括的各點像素值中的最大值;(5)把該點像素值置為最大;(6)把緩沖區(qū)中改動的數(shù)據(jù)復(fù)制到原數(shù)據(jù)區(qū)中。

3.程序代碼voidZaoShengXiaoChuDib::nnzuida(intn

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論