均值模糊(均值滤波,Average/Mean Blur). 通过计算指定区域内所有像素的平均值来替换中心像素,适合快速模糊大面积内容,遮盖效果较为均匀
roi_blur = cv2.blur(roi, (25, 25)) # 均值模糊roi:需要模糊的区域(图像子区域)。(25, 25):卷积核的宽和高,越大模糊越明显,必须为正整数。
高斯模糊(Gaussian Blur)
roi_blur = cv2.GaussianBlur(roi, (25, 25), 0) # 高斯模糊roi:需要模糊的区域。(25, 25):高斯核的尺寸,宽和高都必须为大于1的奇数。0:X方向的标准差,设为0时由OpenCV自动计算。
中值模糊(Median Blur). 用邻域像素的中值替换中心像素,对去除局部噪声和抹除细节有较好效果,尤其适合遮盖人脸等区域
roi_blur = cv2.medianBlur(roi, 25) # 中值模糊roi:需要模糊的区域。15:核的尺寸,必须为大于1的奇数,数值越大模糊越强。
一个完整的示例:
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)