圖像平滑處理(濾波處理)


原圖片讀入后如下所示,會有很多噪音點

 

 這時就要用到濾波處理來處理這些噪音點,有以下幾種方式:

1、均值濾波

 

 對於一個像素點,可以在它周圍畫一個卷積盒子,用盒子中的均值來代替這個像素點,計算公式為(121+75+...+235)/9

也就相當於一個3×3的卷積矩陣,每個位置的值都為1,該卷積矩陣與像素點矩陣做乘法,然后除以矩陣的大小

經過均值濾波處理后,結果如下:

1 #均值濾波
2 blur=cv2.blur(img,(3,3))

 

可以看到噪音點比原始圖像少了很多,但還是有一些噪音點

 

2、方框濾波

方框濾波有兩種情況,如果做了歸一化處理,就和均值濾波一樣

1 #方框濾波(歸一化即和均值濾波一樣)
2 box1=cv2.boxFilter(img,-1,(3,3),normalize=True)

 

 如果不做歸一化處理,就是將卷積盒子中的所有數值加起來,不取平均值,即121+75+...+235

因為像素點的取值范圍是0~255,如果加起來超過這個范圍,顯示出來就是一個白點

1 #方框濾波(不做歸一化處理)
2 box2=cv2.boxFilter(img,-1,(3,3),normalize=False)

 

 

 

3、高斯濾波

在卷積盒子中,有些像素點離中心像素點的距離近一些,那么它和中心像素點的關系更近一些,求平均值的時候權重應該更大一些

例如3×3的盒子中,上下左右就離中心點的距離短一些,四個角距離就稍長些

高斯濾波就是在求均值的基礎上給各個點都加上了權重

1 #高斯濾波
2 gaussian=cv2.GaussianBlur(img,(5,5),1)

 

 

4、中值濾波

就是將卷積盒子中的像素點按順序排成一列,取它的中間數,即中位數

24,75,78,104,113,121,154,204,235,中位數是113,就用113來代替中心像素點的值

1 #中值濾波
2 median=cv2.medianBlur(img,5)

 

 

可以看到,利用中值濾波處理后,噪音點基本沒有了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM