1. 程式人生 > >Python+opencv 影象模糊

Python+opencv 影象模糊

最近在學習OPencv進行影象處理,剛開始看的書是《數字影象處理》(岡薩雷斯matlab)版,後來做一個答題卡的專案需要使用到opencv,對學過的知識進行再次的溫習和查缺補漏。

參考連結:http://www.cnblogs.com/Undo-self-blog/p/8436389.html

1)平均模糊 :取(歸一化)卷積框裡的平均值代替中心畫素的值,用到的語句為:cv2.blur(img,(5,5))

2)高斯模糊 :使用高斯核進行加權模糊,用到的語句為:cv2.GaussianBlur(img,(5,5),0)。

參考連結:http://www.ruanyifeng.com/blog/2012/11/gaussian_blur.html

3)中值模糊 :使用卷積框中畫素的中值(比如使用3x3的卷積框,則將框內的9個元素進行排序,取中值畫素5來代替卷積框的中心位置),中值模糊對去除椒鹽噪聲很有效果,用到的語句為:cv2.medianBlur(img,5)。

參考連結:https://www.cnblogs.com/tanfy/p/median_filter.html

4)雙邊濾波 : 函式 cv2.bilateralFilter() 能在保持邊界清晰的情況下有效的去除噪音。但是這種操作與其他濾波器相比會比較慢。我們已經知道高斯濾波器是求中心點鄰近區域畫素的高斯加權平均值。這種高斯濾波器只考慮畫素之間的空間關係,而不會考慮畫素值之間的關係(畫素的相似度)。所以這種方法不會考慮一個畫素是否位於邊界。因此邊界也會別模糊掉,而這正不是我們想要。雙邊濾波在同時使用空間高斯權重和灰度值相似性高斯權重。空間高斯函式確保只有鄰近區域的畫素對中心點有影響,灰度值相似性高斯函式確保只有與中心畫素灰度值相近的才會被用來做模糊運算。所以這種方法會確保邊界不會被模糊掉,因為邊界處的灰度值變化比較大。