一、图像平滑
图像平滑是一种区域增强的算法,平滑算法有邻域平均法、中指滤波、边界保持类滤波等。在图像产生、传输和复制过程中,常常会因为多方面原因而被噪声干扰或出现数据丢失,降低了图像的质量(某一像素,如果它与周围像素点相比有明显的不同,则该点被噪声所感染)。这就需要对图像进行一定的增强处理以减小这些缺陷带来的影响。
为了方便做出比较,先给一幅图片中加入噪声,代码如下:
import cv2
import numpy as np
# 读取图片
image = cv2.imread('E:/pythonProject/mei.jpeg',cv2.IMREAD_UNCHANGED)
rows,cols,chn = image.shape
#添加噪声
for i in range (5000):
x = np.random.randint(0,rows)
y = np.random.randint(0,cols)
image[x,y,:] = 255
#显示图片
cv2.imshow("noise",image)
#窗口等待
cv2.waitKey(0)
cv2.destroyAllWindows()
#图片写入
cv2.imwrite("E:/pythonProject/meii.jpeg",image)
加入噪声后的图片显示如下:
二、均值滤波
1.原理
在进行均值滤波的时候要考虑需要对周围多少个像素去平均值,即确定核的大小,通常情况下都是以当前像素点为中心,读行数和列数相等的一块区域内的所有像素点求平均。将计算得到的结果作为该点的像素。
例如下图中,红色点的像素值为蓝色背景区域像素值之和除25。
其中红色区域的像素值均值滤波处理过程为: ((197+25+106+156+159)+ (149+40+107+5+71)+ (163+198+**226**+223+156)+ (222+37+68+193+157)+ (42+72+250+41+75)) / 25
其中5*5的矩阵称为核,针对原始图像内的像素点&#x