




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第6章圖像平滑處理6.1概述概述圖像平滑或濾波目的是消除噪聲,降低干擾,改善圖像質(zhì)量。圖像平滑常用的方法是采用區(qū)域處理,利用相鄰的像素值,進行均值濾波或中值濾波。6.1平滑處理的基本方法圖像在獲取、傳輸過程中,受干擾的影響,會產(chǎn)噪聲,噪聲干擾正常信號。造成圖像毛糙。圖像去噪是一種信號濾波的方法,目的是保留有用信號,去掉噪音信號。噪聲是隨機產(chǎn)生的,分布不規(guī)則,大小也不規(guī)則。噪聲像素的灰度是空間不相關,與鄰近像素顯著不同。圖像噪聲噪聲
(a)隨機噪聲
(b)椒鹽噪聲
一幅圖像往往受到各種噪聲的干擾,噪聲常為一些孤立的像素點,往往是疊加在圖像上的隨機噪聲,像雪花使圖像被污染,而圖像灰度應該相對連續(xù)變化的,一般不會突然變大或變小,這種噪聲可以用鄰域平均法使它得到抑制。鄰域平均法(均值濾波)鄰域平均法是一種利用模板對圖像進行模板操作(卷積運算)法,常用的3×3和5×5模板如下:鄰域平均法鄰域平均法是一種利用模板對圖像進行模板操作(卷積運算)的方法(b)5x5模版鄰域平均法也叫均值濾波,是對待處理的像素給定一個模板,該模板包括了其周圍的鄰近像素,用模板中的全體像素的均值來替代原來的像素值。(a)3x3模版鄰域平均法鄰域平均法:通過一點和鄰域內(nèi)像素點求平均來去除突變的像素點,優(yōu)點是算法簡單,計算速度快,代價是會造成圖像一定程度上的模糊。鄰域平均法存在的問題如果窗口內(nèi)各點的噪聲是獨立等分布的,經(jīng)過這種方法平滑后,信噪比可提高倍。在此算法中,M,N的值不宜過大,因為M,N值的大小對速度有直接影響,且M,N值越大變換后的圖像越模糊,特別是在邊緣和細節(jié)處。鄰域平均法存在的問題可以抑制高頻成分,但也使圖像變得模糊。平滑效果不好,減少噪音的同時,損失了高頻信息。鄰域平均法存在的問題效果展示鄰域平均法是一種利用模板對圖像進行模板操作(卷積運算)法,常用的3×3和5×5模板如下:鄰域平均法鄰域平均法:,代價是會造成圖像一定程度上的模糊。鄰域平均法存在的問題M,N值越大變換后的圖像越模糊,特別是在邊緣和細節(jié)處。鄰域平均法存在的問題按照與中心點的距離不同,賦予像素點不同的權(quán)值,靠近中心點的權(quán)重值較大,遠離中心點的權(quán)重值較小,在此基礎上計算鄰域內(nèi)各個像素值不同權(quán)重的和。
Gaussian平滑法鄰域處理---模板1)將模板在圖中漫游,并將模板中心與圖中某個像素位置重合;2)將模板上系數(shù)與模板下對應像素相乘;3)將所有乘積相加;4)將和賦給圖中對應模板中心位置的像素。卷積步驟卷積的處理過程卷積的處理過程為得到一幅經(jīng)過完整的經(jīng)過濾波處理的圖像,必須對x=0,1,2,…,M-1和y=0,1,2,…,N-1依次應用公式。在M×N的圖像f上,用m×n大小的掩模:其中a=(m-1)/2且b=(n-1)/2,處理的掩模長與寬都為奇數(shù)。簡化表達形式:3×3的掩模:模板操作“-”表示無法進行模板操作的像素點。卷積運算的邊界問題?邊界問題的解決1)忽略圖像邊界數(shù)據(jù);多采用該方法。2)在圖像四周復制原圖像邊界像素的值,從而使卷積核懸掛在圖像四周時可以進行正常的計算。3)計算出來的像素值的超出范圍問題,對此可簡單地將其值置為0或255。邊界問題的解決中值濾波法中值濾波:抑制噪聲又要保持細節(jié)。將窗口中奇數(shù)個數(shù)據(jù)按大小順序排列,處于中心位置的那個數(shù)作為處理結(jié)果。取3X3窗口從小到大排列,取中間值中值濾波法3×3模板:中間值序號是5。5×5模板:中間值序號是13。7×7模板:中間值序號是25。9×9模板:中間值序號是41。模板操作中值濾波幾種常用窗口中值濾波幾種常用窗口均值濾波器對高斯噪聲的濾波效果較好,對椒鹽噪聲的濾波效果不好。中值濾波器對椒鹽噪聲的濾波效果較好,對高斯噪聲的濾波效果不好。均值濾波器對高斯噪聲的濾波效果較好,對椒鹽噪聲的濾波效果不好。中值濾波器對椒鹽噪聲的濾波效果較好,對高斯噪聲的濾波效果不好。高斯濾波Python實現(xiàn)cv2.GassianBlur()函數(shù)來實現(xiàn)圖像的高斯濾波。dst=cv2.GassianBlur(src,ksize,sigmaX,sigmaY,borderType)dst表示返回的高斯濾波處理結(jié)果。src表示原始圖像,該圖像不限制通道數(shù)目。ksize表示濾波卷積核的大小,奇數(shù)。sigmaX--卷積核在水平方向上的權(quán)重值。sigmaY--卷積核在垂直方向上的權(quán)重值。borderType表示以哪種方式處理邊界值。
importcv2ascvimage=cv.imread("F:/picture/g1.jpg")#讀取一幅圖像cv.imshow("image",image)#顯示原圖#定義卷積和為5*5,gauss=cv.GaussianBlur(image,(5,5),0,0)cv.imshow("gauss",gauss)#顯示濾波后的圖像
均值濾波Python實現(xiàn)cv2.blur()函數(shù)來實現(xiàn)圖像的均值濾波。dst=cv2.blur(src,ksize,anchor,borderType)dst--返回的均值濾波處理結(jié)果。src--原始圖像,該圖像不限制通道數(shù)目。ksize--濾波卷積核的大小。anchor---其默認值為(-1,-1),卷積核中心點。borderType表示以哪種方式處理邊界值。
【例】importcv2ascvimage=cv.imread("F:/picture/g1.jpg")#讀取一幅圖像cv.imshow("image",image)#顯示原圖means5=cv.blur(image,(5,5))#定義卷積和為5×5,實現(xiàn)均值濾波means10=cv.blur(image,(10,10))#定義卷積和10×10,實現(xiàn)均值濾波means20=cv.blur(image,(20,20))#定義卷積和20×20,實現(xiàn)均值濾波
隨著卷積核的增大,圖像的失真情況越來越嚴重。
在方框濾波中,可以選擇是否對均值濾波的結(jié)果進行歸一化,即可以選擇濾波結(jié)果是鄰域像素值之和的平均值,還是鄰域像素值之和。
方框濾波方框濾波Python實現(xiàn)cv2.boxFilter()函數(shù)來實現(xiàn)圖像的方框濾波。dst=cv2.boxFilter(src,depth,ksize,anchor,normalize,borderType)dst:返回的方框濾波處理結(jié)果。src:原始圖像,該圖像不限制通道數(shù)目。depth:處理后圖像的深度,-1表示與原始圖像相同的深度。ksize:濾波卷積核的大小。anchor:圖像處理的錨點,默認(-1,-1),卷積核中心點。normalize:是否進行歸一化操作。borderType:以哪種方式處理邊界值。
#定義卷積和為5*5,-1深度與原圖同,normalize=0不進行歸一化box5_0=cv.boxFilter(image,-1,(5,5),normalize=0)box2_0=cv.boxFilter(image,-1,(2,2),normalize=0)#定義卷積和為5*5,normalize=1進行歸一化box5_1=cv.boxFilter(image,-1,(5,5),normalize=1)#定義卷積和為2*2,normalize=1進行歸一化box2_1=cv.boxFilter(image,-1,(2,2),normalize=1)cv.imshow("box5_0",box5_0)#顯示濾波后的圖像
中值濾波Python實現(xiàn)cv2.medianBlur()函數(shù)來實現(xiàn)圖像的中值濾波。dst=cv2.medianBlur(src,ksize)dst表示返回的方框濾波處理結(jié)果。src表示原始圖像,該圖像不限制通道數(shù)目。ksize表示濾波卷積核的大小。importcv2ascvimage=cv.imread("F:/picture/jiao1.jpg")#讀取一幅圖像cv.imshow("image",image)#顯示原始圖像#使用卷積核為5*5的中值濾波median=cv.medianBlur(image,5)cv.imshow("median",median)#顯示濾波結(jié)果cv.waitKey()cv.destroyAllWindows()中值濾波可以有效地處理椒鹽噪聲,而且不會產(chǎn)生圖像模糊的現(xiàn)象。高斯濾波以距離為權(quán)重,設計濾波系數(shù),只考慮空間位置上的關系,丟失邊緣的信息。雙邊濾波在高斯基礎上,疊加了像素值的考慮,非線性濾波,對保留邊緣更有效。
6.6雙邊濾波空間距離:當前點距離濾波模板中心點的歐式距離。灰度距離:當前點距離濾波模板中心點的灰度的差值的絕對值雙邊濾波的核函數(shù)是空間域核與像素范圍域核的綜合結(jié)果:1)平坦區(qū)域,變化很小,差值接近于0,范圍域權(quán)重接近于1,空間域權(quán)重起作用,相當于進行高斯模糊;2)邊緣區(qū)域,像素差值大,像素范圍域權(quán)重變大,即使距離遠空間域權(quán)重小,加上像素域權(quán)重總的系數(shù)也較大,從而保護了邊緣的信息。在突變的邊緣上,使用了像素差權(quán)重,所以很好的保留了邊緣。雙邊濾波Python實現(xiàn)cv2.bilateralFilter()實現(xiàn)圖像的雙邊濾波。dst=cv2.bilateralFilter(src,d,sigmaColor,sigmaSpace,borderType)dst:返回的雙邊濾波處理結(jié)果。src:原始圖像,該圖像不限制通道數(shù)目。d:空間距離參數(shù),以當前像素點為中心點的半徑。一般取5。sigmaColor:雙邊濾波時選取的色差范圍。sigmaSpace:坐標空間sigma值,越大,越多點濾波。borderType:以何種方式處理邊界
importcv2ascvimage=cv.imread("F:/picture/luot.jpg")#讀取一幅圖像cv.imshow("image",image)#顯示原始圖像gauss=cv.GaussianBlur(image,(55,55),0,0)#對圖像進行高斯濾波bilateral=cv.bilateralFilter(image,55,100,100)#對圖像進行雙邊濾波
雖然OpenCV提供了多種濾波方式來實現(xiàn)平滑圖像的效果,希望使用特定的卷積核實現(xiàn)卷積操作,自定義卷積核實現(xiàn)圖像的平滑處理。
6.72D卷積核的實現(xiàn)自定義卷積核Python實現(xiàn)在OpenCV中,允許用戶使用實現(xiàn)卷積操作dst=cv2.filter2D(src,d,kernel,anchor,delta,borderType)dst:返回的雙邊濾波處理結(jié)果。src:原始圖像,該圖像不限制通道數(shù)目。d:處理結(jié)果圖像的圖像深度,-1表示與原始圖像相同深度。kernel:一個單通道的卷積核。anchor:圖像處理的錨點,(-1,-1)位于卷積核中心點。delta:修正值,可選。會在濾波的基礎上加上該值果。borderType:以何種情況處理邊界。
image=cv.imread("F:/picture/lena.png")#讀取一幅圖像cv.imshow("image",image)#顯示原始圖像k1=np.ones((13,13),np.float32)*3/(13*13)#13×13卷積核k2=np.ones((9,9),np.float32)*2/81#9×9的卷積核k3=np.ones((5,5),np.float32)/25#5×5的卷積核out1=cv.filter2D(image,-1,k1)#13×13卷積核進行濾波cv.imshow("out1",out1)#顯示濾波后的圖像cv.imshow("out2",out2)#顯示濾波后的圖像6.2噪聲消除法6.2.1二值圖像的黑白點噪聲濾波用3×3模板的均值進行濾波:當f(i,j)周圍的8個像素的平均值為a時,若|f(i,j)-a|>127.5,
則對f(i,j)的黑白進行翻轉(zhuǎn);若不到127.5,則f(i,j)不變。
二值圖像的黑白點噪聲濾波二值圖像的黑白點噪聲濾波該方法相當于如下3×3模板:1)取得圖像大小、數(shù)據(jù)區(qū),并把數(shù)據(jù)區(qū)復制到緩沖區(qū)中;2)循環(huán)取得各點像素值;3)取得該點周圍8像素值的平均值;4)平均值與該點像素值相比,若大于127.5則把該點顏色反轉(zhuǎn);實現(xiàn)步驟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);
if(abs(averg-p_temp[j*wide+i])>127.5) p_temp[j*wide+i]=averg;}
(a)原圖(b)二值圖像的黑白點噪聲濾波二值圖像的黑白點噪聲濾波效果圖函數(shù)說明(1)retval=image.getdata(band=None)將此圖像的內(nèi)容作為一個包含像素值的序列對象返回。該序列對象是平鋪的,所以第一行的值直接跟在第0行的值之后,以此類推。retval:包含像素值的序列的對象;band:返回頻段。默認是返回所有波段。要返回單個波段,需要傳入索引值(例如,從“RGB”圖像中獲得“R”波段,則索引值為0)。(2)retval=image.putpixel(xy,color)用于修改x,y處的像素。retval:返回一個修改后的圖像;xy:像素坐標,以(x,y)的形式給出;value:像素值。效果展示6.2.2消除孤立黑像素點在二值圖像中,消除孤立于周圍的黑像素點(變成白的)。*****
**
*****四鄰域八鄰域在4點鄰域的情況下,若黑像素f(i,j)的上下左右4個像素全為白,則f(i,j)為白。在8點鄰域法相似。消除孤立黑像素點1)取得圖像大小、數(shù)據(jù)區(qū),并把數(shù)據(jù)區(qū)復制到緩沖區(qū)中;2)循環(huán)取得各點像素值;3)判斷為4連接或8連接;4)為4連接時,若該點上下左右4個像素全為白,則該點置白,8鄰域處理法相似。實現(xiàn)步驟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; }}(a)原圖
(b)4連接(c)8連接效果圖效果展示6.3應用技術6.3.13×3均值濾波理論基礎理論基礎在f(i,j)上按行(或列)對每個像素選取3×3尺寸的鄰域,并用鄰域中鄰近像素的平均灰度來置換這一像素值。函數(shù)說明retval=cv2.blur(src,ksize,anchor,borderType)retval:表示返回的均值濾波處理結(jié)果;src:表示原始圖像,該圖像不限制通道數(shù)目;ksize:表示濾波卷積核的大小;anchor:表示圖像處理的錨點,其默認值為(-1,-1),表示位于卷積核中心點,通常直接使用默認值即可;borderType:表示以哪種方式處理邊界值,通常直接使用默認值即可。效果展示圖6-8圖像3x3鄰域平均法效果圖6.3.2N×N均值濾波理論基礎在本程序中當灰度圖像f中以像素f(i,j)為中心的N×N屏蔽窗口(N=3,5,7,…)內(nèi)平均灰度值為a時,無條件做f(i,j)=a處理,N由用戶給定,且取N值越大,噪聲減少越明顯。但“平均”是以圖像的模糊為代價的。圖像7×7均值濾波效果6.3.3超限鄰域平均法理論基礎為了減少模糊效應,找到清除噪聲和邊緣模糊這對矛盾的最佳統(tǒng)一。閾值的鄰域平均法以某個灰度值T作為閾值,如果某個像素的灰度大于其鄰近像素的平均值,并超過閾值,才使用平均灰度置換這個像素灰度:(6-1)函數(shù)說明retval=cv2.cvtColor(src,code[,dstCn])retval:表示與輸入值具有相同類型和深度的輸出圖像;src:表示原始輸入圖像;code:是色彩空間轉(zhuǎn)換碼,常見的枚舉值有cv2.cvtColor_BGR2RGB、cv2.cvtColor_BGR2GRAY、cv2.cvtColor_BGR2HSV、cv2.cvtColor_BGR2YCrCb、cv2.cvtColor_BGR2HLS;dstCn:表示目標圖像的通道數(shù)。
效果展示本例選取閾值為10。6.3.4方框濾波理論基礎除均值濾波之外,OpenCV還提供了方框濾波的方式。與均值濾波的不同在于,方框濾波不僅僅只計算像素均值,兩種方式選擇計算:函數(shù)說明dst=cv2.boxFilter(src,depth,ksize,anchor,normalize,borderType)dst:表示返回的方框濾波處理結(jié)果;src:表示原始圖像,該圖像不限制通道數(shù)目;depth:表示處理后圖像的深度,一般使用-1表示與原始圖像相同的深度;ksize:表示濾波卷積核的大小;anchor:錨點,其默認值為(-1,-1),表示位于卷積核中心點;normalize:表示是否進行歸一化操作;borderType:表示以哪種方式處理邊界值。效果展示(a)原圖(b)5x5未歸一化方框濾波結(jié)果效果展示(c)2X2為歸一化方框濾波結(jié)果(d)5x5歸一化方框濾波結(jié)果(e)2x2歸一化方框結(jié)果6.4高斯濾波理論基礎在高斯濾波中,按照與中心點的距離的不同,賦予像素點不同的權(quán)重值,靠近中心點的權(quán)重值較大,遠離中心點的權(quán)重值較小,在此基礎上計算鄰域內(nèi)各個像素值不同權(quán)重值的和函數(shù)說明dst=cv2.GassianBlur(src,ksize,sigmaX,sigmaY,borderType)dst:表示返回的高斯濾波處理結(jié)果;src:表示原始圖像,該圖像不限制通道數(shù)目;ksize:卷積核的大小,需要注意的是濾波卷積核的數(shù)值必須是奇數(shù)。sigmaX:表示卷積核在水平方向上的權(quán)重值。sigmaY:表示卷積核在垂直方向上的權(quán)重值。
borderType:表示以哪種方式處理邊界值。效果展示6.5中值濾波中值濾波將窗口中奇數(shù)個數(shù)據(jù)按大小順序排列,處于中心位置的那個數(shù)作為處理結(jié)果。一般采用一個含有奇數(shù)個點的滑動窗口,將窗口中各點灰度值的中值來替代指定點圖像中值濾波示意圖如圖6-14所示,取3×3窗口,從小到大排列:33200201202205206207208210
取中間值205,代替原來的數(shù)值202
中值濾波實現(xiàn)步驟:①將模板在圖中漫游,并將模板中心與圖中某個像素位置重合;②讀取模板下各對應像素的灰度值;③將這些灰度值從小到大排成1列;④找出這些值里排在中間的1個;(5)將這個中間值賦給對應模板中心位置的像素。中值濾波器對椒鹽噪聲的濾波效果較好,對高斯噪聲的處理效果不好。6.5.1N×N中值濾波理論基礎本程序計算灰度圖像f中以像素f(i,j)為中心的N×N屏蔽窗口(N=3,5,7,…)內(nèi)灰度的中值為u,無條件做f(i,j)=u處理,n由用戶給定。函數(shù)說明在OpenCV中提供了cv2.medianBlur()函數(shù)來實現(xiàn)圖像的中值濾波。其一般格式為:retval=cv2.medianBlur(src,ksize)retval:表示返回的方框濾波處理結(jié)果;src:表示原始圖像,該圖像不限制通道數(shù)目;ksize:表示濾波卷積核的大小。效果展示6.5.2十字型中值濾波理論基礎本程序計算灰度圖像f中以像素f(i,?j)為中心的十字形屏蔽窗口內(nèi)灰度值的中值u,無條件做f(i,?j)=u處理,N由用戶給定。效果展示6.5.3
N×N最大值濾波理論基礎本程序計算灰度圖像f中以像素f(i,?j)為中心的N×N屏蔽窗口(N=3,5,7,…)內(nèi)灰度的中值為u,無條件做f(i,j)=u處理,n由用戶給定。函數(shù)說明(1)retval=cv2.copyMakeBorder(src,top,bottom,left,right,borderType)用來給圖片添加邊框。retval:返回帶邊框的圖像;src:要處理的原圖;top,bottom,left,right:上下左右要擴展的像素數(shù);borderType:邊框類型,(2)min_val,max_val,min_loc,max_loc=cv2.minMaxLoc(ret)該函數(shù)用來找出矩陣中的最大值和最小值以及對應的坐標位置。min_val:最小值;max_val:最大值;min_loc:最小值坐標;max_loc:最大值坐標;ret:輸入矩陣。效果展示6.6雙邊濾波理論基礎雙邊濾波將濾波器的權(quán)系數(shù)分解設計為空域濾波器的權(quán)系數(shù)和圖像亮度差的權(quán)系數(shù)空間距離:當前點距離模板中心點的歐式距離Wd為灰度距離:當前點距離模板中心點的灰度差值的絕對值Wr為雙邊濾波器:
理論基礎雙邊濾波卷積表示為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 洗浴服務行業(yè)行業(yè)規(guī)范制定原則考核試卷
- 毛發(fā)染整行業(yè)法律法規(guī)知識考核試卷
- 林業(yè)機械化森林防火與應急處理考核試卷
- 硫酸銀在抗菌材料開發(fā)中的應用技術考核試卷
- 核工業(yè)試模擬試題及答案
- 2025授權(quán)加盟店鋪經(jīng)營合同
- 2025版附條件贈與合同模板大全
- 2025關于房屋買賣合同解除的條件與法律規(guī)定
- 外貿(mào)函電試題庫及答案
- 專利代理人資格證書的重要積累途徑試題及答案
- 燃氣工程專業(yè)中級職稱理論考試題庫-建設工程專業(yè)中級職稱理論考試題庫
- 十二指腸球部潰瘍PPT課件
- 鐵路建設項目施工企業(yè)信用評價辦法(鐵總建設〔2018〕124號)
- 誘導公式練習題-(中職)
- 2016年浦東新區(qū)公辦小學招生地段
- 鴿巢問題(例1、例2)[1]
- 01戴明十四條
- 完整版佛教葬禮儀式
- 【課件】第六章 模型或原型的制作課件-高中通用技術蘇教版(2019)必修《技術與設計1》
- 鍋爐除氧器過程控制課程設計
- 統(tǒng)計法培訓課PPT課件
評論
0/150
提交評論