系列文章
Python+OpenCV图像处理(一)——OpenCV框架与图像插值算法
Python+OpenCV图像处理(二)——几何变换
Python+OpenCV图像处理(三)——彩色空间互换
Python+OpenCV图像处理(四)——图像滤波
Python+OpenCV图像处理(五)——图像阈值和二值化
Python+OpenCV图像处理(六)——边缘检测
四、图像滤波
4.1 简介
图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。
4.2 图像平滑方法
4.2.1 2D卷积
在原理上,是采用一个卷积核与图像进行卷积,下面是一个5X5的平均滤波器,也叫做核(kernel):
将核放在图像的一个像素上,求与邻域内(5×5)的像素和,再取平均数,用这个平均数代替该像素的值。重复以上操作直到将图像的每一个像素值都更新一遍。
OpenCV提供的函数cv2.filter2D()可以实现这种卷积操作。
实现
#%%
import numpy as np
import cv2
img = cv.imread('lena.jpg', 1)
kernel = np.ones((5,5),n