opencv python 5 平滑濾波

2021-08-11 13:14:12 字數 1347 閱讀 2104

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是...