python - 3种OpenCV区域模糊方法

均值模糊(均值滤波,Average/Mean Blur). 通过计算指定区域内所有像素的平均值来替换中心像素,适合快速模糊大面积内容,遮盖效果较为均匀

roi_blur = cv2.blur(roi, (25, 25))  # 均值模糊

高斯模糊(Gaussian Blur)

roi_blur = cv2.GaussianBlur(roi, (25, 25), 0)  # 高斯模糊

中值模糊(Median Blur). 用邻域像素的中值替换中心像素,对去除局部噪声和抹除细节有较好效果,尤其适合遮盖人脸等区域

roi_blur = cv2.medianBlur(roi, 25)  # 中值模糊

一个完整的示例:

import cv2

img = cv2.imread('input.jpg')
x, y, w, h = 100, 100, 200, 200  # 需要遮盖的矩形区域
roi = img[y:y+h, x:x+w]
roi_blur = cv2.medianBlur(roi, 25)  # 中值模糊
img[y:y+h, x:x+w] = roi_blur
cv2.imwrite('output.jpg', img)