
图像滤波
图像滤波可以更改或者增强图像。滤波的目的有两个:一是抽出对象的特征作为图像识别的特征模式; 另一个是为适应图像处理的要求,消除图像数字化时所混入的噪声。
噪声一般主要分为以下几类:
椒盐噪声
加性噪声
乘性噪声
高斯噪声
图像滤波可以通过公式表达:
O(i,j)=∑m,nI(i+m,j+n)∗K(m,n)
K就是核,核可以应用在图像滤波、边缘检测等等图像处理方面。
图像滤波算法主要包括均值滤波、中值滤波、高斯滤波、双边滤波,上述滤波操作都是基于图像卷积得到最后的结果。
均值滤波
均值滤波属于线性滤波器,通过固定的模板(权值相同均为1),和原始图像进行卷积操作,用其像素点周围的像素点均值作为最终的像素值。

假设窗口大小ksize=3,图像中“5”对应的像素值在3*3的邻域窗口进行计算,最后的值为:(1+2+3+4+5+6+7+8+9)/9=4.4
import cv2
import matplotlib.pyplot as plt
img=cv2.imread("car.jpg")
mean_img=cv2.blur(img,(3,3))
plt.subplot(1,2,1)
plt.imshow(img)
plt.title("scr_img")
plt.subplot(1,2,2)
plt.imshow(mean_img)
plt.title("mean_img")
plt.show()

高斯滤波
均值滤波把所有像素点同等考虑,但实际上,图像的像素之间,距离越近,关系越密切。反之,关系越疏远。因此,考虑使用加权处理图像像素,才更加合理。距离越近,权重越高,反之,权重越低。这种关系非常符合高斯函数的分布特征。

高斯滤波本质上是低通滤波器,输出图像的每个像素点是原图像上对应像素点与周围像素点的加权和,原理并不复杂,用高斯分布权值矩阵与原始图像矩阵做卷积运算。
import cv2
import matplotlib.pyplot as plt
img=cv2.imread("car.jpg")
#gauss filter
gauss_img=cv2.GaussianBlur(img,(3,3),0)
plt.subplot(1,2,1)
plt.imshow(img)
plt.title("scr_img")
plt.subplot(1,2,2)
plt.imshow(gauss_img)
plt.title("gauss_img")
plt.show()

中值滤波
中值滤波算法以某像素的邻域图像区域中的像素值的排序为基础,是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。中值滤波对椒盐噪声处理效果比较好。
import cv2
import matplotlib.pyplot as plt
import numpy as np
def salt(img,n):
for k in range(n):
i = int(np.random.random()*int(img.shape[0]))
j = int(np.random.random()*int(img.shape[1]))
img[i][j][0] = 255
img[i][j][1] = 255
img[i][j][2] = 255
return img
img = cv2.imread("car.jpg")
img = salt(img,300)
med_img = cv2.medianBlur(img,(3,3))
plt.subplot(1,2,1)
plt.imshow(img)
plt.title("scr_img")
plt.subplot(1,2,2)
plt.imshow(med_img)
plt.title("median_img")
plt.show()

双边滤波
双边滤波先根据像素值对要用来进行滤波的邻域做一个分割或分类,再给该点所属的类别相对较高的权重,然后进行邻域加权求和,得到最终结果。
双边滤波与高斯滤波相比,对于图像的边缘信息能够更好的保留,其原理为一个与空间距离相关的高斯核函数与一个灰度距离相关的高斯函数相乘。
import cv2
import matplotlib.pyplot as plt
img = cv2.imread("car.jpg")
double_img = cv2.bilateralFilter(img,9,50,50)
plt.subplot(1,2,1)
plt.imshow(img)
plt.title("scr_img")
plt.subplot(1,2,2)
plt.imshow(double_img)
plt.title("double_img")
plt.show()

参考博客:
https://blog.csdn.net/qq_27261889/article/details/80822270
https://blog.csdn.net/jiang_ming_/article/details/82594261
https://blog.csdn.net/zongza/article/details/83000443
网友评论