opencv提供了cv2.filter2d()函式來對影象進行卷積操作(影象濾波)。
dst = cv.filter2d(src, ddepth, kernel[, dst[, anchor[, delta[, bordertype]]]])
如使用乙個5x5的均值濾波器對影象作均值濾波:
影象模糊即使用低通濾波器對影象作卷積,可以有效地消除雜訊。
均值濾波
均值濾波即直接取核中每個畫素的均值,由cv2.blur()實現。
dst = cv.blur(src, ksize[, dst[, anchor[, bordertype]]])
res = cv2.blur(img, (5, 5))
高斯濾波
cv2.gaussianblur()根據畫素距離使用高斯函式生成權重進行濾波。
dst = cv.gaussianblur(src, ksize, sigmax[, dst[, sigmay[, bordertype]]])
若只給了乙個sigma則同時視為兩軸的sigma,若均為0則根據尺寸自動生成。
res = cv2.gaussianblur(img, (5, 5), 0)
中值濾波
cv2.medianblur()取核中每個畫素的中值作為該畫素的值。
dst = cv.medianblur(src, ksize[, dst])
res = cv2.medianblur(img, 5)
雙邊濾波
cv2.bilateralfilter()雙邊濾波在高斯濾波的基礎上增加了灰度值的影響,可以有效地在保持邊緣清晰的情況下去除雜訊,但速度較慢。
dst = cv.bilateralfilter(src, d, sigmacolor, sigmaspace[, dst[, bordertype]])
res = cv2.bilateralfilter(img, 9, 75, 75)
OpenCV Python教程(5 初級濾波內容)
本篇文章介紹如何用opencv python來實現初級濾波功能。本文介紹使用opencv python實現基本的濾波處理 本文不介紹濾波處理的詳細概念,所以讀者需要預先對其有一定的了解。過濾是訊號和影象處理中基本的任務。其目的是根據應用環境的不同,選擇性的提取影象中某些認為是重要的資訊。過濾可以移除...
OpenCV Python入門教程5 閾值分割
灰度圖讀入 閾值分割 ret,th cv2.threshold img,127,255,cv2.thresh binary cv2.imshow thresh th cv2.waitkey 0 cv2.threshold 用來實現閾值分割,有4個引數 理解這5種閾值方式 應用5種不同的閾值方法 re...
在OpenCV裡實現高斯平滑5
基於可分離的高斯矩陣的卷積,並且計算量還少,那麼opencv也提供了相應的函式getgaussiankernel來計算高斯平滑,這個函式主要用來計算一維垂直方向的高斯卷積核,它的定義如下 retval cv.getgaussiankernel ksize,sigma ktype 其中引數ksize是...