官网参见https://docs.opencv.org/3.4.1/d4/d13/tutorial_py_filtering.html
有一篇文章也解释的很清楚https://blog.csdn.net/qq_31462127/article/details/81165176
内容概要
- 2D卷积(图像滤波),cv.filter2D()
- 图像模糊
- 均值模糊(归一化),cv.blur() 和cv.boxFilter()
- 高斯模糊,cv.GaussianBlur()
- 中值模糊(Median Blurring),cv.medianBlur()
- 白噪声,椒盐噪声与高斯噪声
- 双边滤波,cv.bilateralFilter()
“平滑”通常又称“模糊”,是一种简单常用的图像处理操作。进行平滑处理的原因有很多,但通常是用来去除噪声和相机失真。在降低图像分辨率时,平滑处理是很重要的。
平滑处理时需要用到一个滤波器 。最常用的滤波器是线性滤波器。本文会介绍opencv中提供的几种线性滤波器。
1.2D卷积(图像滤波)
和一维信号一样,图像也可以用各种低通滤波器(LPF)和高通滤波器(HPF)进行滤波。LPF用于去除噪声,模糊图像。HPF用于发现图像边缘。
opencv的cv.filter2D() 函数对图像进行卷积操作。
dst = cv.filter2D(src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]])
- ddepth:目标图像深度,-1 将生成与原图像深度相同的图像
- kernel:卷积核(或更确切地说是相关核),一个单通道浮点矩阵。如果要将不同的核应用于不同的通道,请使用分割将图像分割成单独的颜色平面,然后分别处理它们。
- anchor:内核的基准点(anchor),指明过滤点在内核中的相对位置。基准点必须位于内核之中。其默认值为(-1,-1),说明位于kernel的中心位置。
- delta:在储存目标图像之前,可选的添加到像素的值,默认值为0
- borderType:像素向外逼近方法
常用卷积模板
例,对图像使用平均过滤器。
1个5x5平均过滤核(averaging filter kernel)如下所示:
M= 1 25 \frac{1 } { 25} 251 [ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1