正文

0.1 卷积

cv.filter2D(img, -1, kernel)

0.2 均值模糊

cv.blur(img, (5,5))
cv.boxFilter(img, -1, (5,5))

0.3 中值滤波

cv.medianBlur(img, 3)

0.4 高斯模板

cv.GaussianBlur(img, (5,5), sigma)

0.5 双边滤波

cv.bilateralFilter(img, -1, sigmaColor=50, sigmaSpace=3)

实践

中值滤波

import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv

def show(img):
    if img.ndim == 2:
        plt.imshow(img, cmap='gray')
    else:
        plt.imshow(cv.cvtColor(img, cv.COLOR_BGR2RGB))
    plt.show()

img = cv.imread('pic/rose_spnoise_200x200.jpg')
img4 = cv.medianBlur(img, 3)
show(np.hstack([img, img4]))

效果


说明:

  1. 未经许可,谢绝转载。
  2. 本教程为《数字图像处理Python OpenCV实战》的配套代码相关内容。
    免费视频教程为0-6章(标题号≤6),可在此处点击观看。
    所有课件及源代码可在此处下载:
    链接:https://pan.baidu.com/s/198PySe_vebO3e06idHSQ6g
    提取码:11o4
    有问题可在QQ群(1079300899)指出,进群答案:数字图像处理。在本文评论指出可能导致回复很晚。