图像滤波
图像滤波分类
卷积简介
图片来自【http://www.elecfans.com/d/920675.html】
卷积的实质对某个像素的领域内的所有像素与卷积核逐像素进行线性加权平均值
如图所示,原图为6*6的输入图像,经过3*3的卷积核变成4*4的输出图像【(6-3)//1+1】
计算公式:
(input.size-kernel.size)//step+1
如果我们想要输入图像与输出图像一样大,常见的做法就是在输入图像的边界进行0填充/临近像素
设填充填充的行(列)数为padding
根据公式
(input.size + 2*padding-kernel.size)//step+1==input.size --->解出padding即可
opencv的2D卷积
#此处只给出常用的参数
cv2.filter2D(src,ddepth,kernel)--->dst
src:输入图像
ddepth:输出通道
kernel:卷积核
import numpy as np
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('happy.jpeg')
kernel = np.array([[-1,-2,-1],[0,0,0],[1,2,1]])
dst = cv2.filter2D(img,-1,kernel)
plt.subplot(121),plt.imshow(img),plt.title('raw')
plt.subplot(122),plt.imshow(dst),plt.title('filter')
常见LPF滤波
1.方框(盒子)滤波-----线性滤波
应用:一切要求求某个邻域内的像素之和,如均值滤波,引导滤波,计算Haar特征
原理:使用一个卷积核与图像进行卷积
如果进行归一化就是均值滤波,当不进行归一化可以计算每个像素领域上的各种积分特性【方差,协方差,平方和】
2.均值滤波
原理:利用领域内的像素均值代替中心像素的值,体现该邻域的像素特征
应用:模糊图像,能部分去噪
缺陷:均值滤波不能很好保存图像细节,不能很好去除椒盐噪声
ksize:kszie一般取奇数
3.高斯滤波
原理:按照高斯分布给中心像素邻域内的像素分配权重后加权平均计算,相当于卷积核的值不是类似于均值滤波的全1,而是按照距离中心像素越远,权重越小
应用:有效去除呈高斯分布的噪声且平滑数据
计算公式