均值滤波,方框滤波,高斯滤波,中值滤波
'''图像平滑处理'''
import cv2
import numpy as np
img=cv2.imread('zaodian.jpg')
def cv_show(name,img):
cv2.imshow(name,img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv_show('1',img)
#均值滤波,简单的平均卷积操作 原理为用一个全为1的矩阵与所选中区域做矩阵的内积,即对应位置相乘
blur=cv2.blur(img,(3,3))
cv_show('blur',blur)
#方框滤波,基本和均值一样,可以选择归一化,normalize=False时容易越界
box=cv2.boxFilter(img,-1,(3,3),normalize=True)
cv_show('box',box)
#高斯滤波,高斯模糊的卷积核里的数值是满足高斯分布,相当于更重视中间的 用的矩阵不是全为1,越靠近越接近1
aussian=cv2.GaussianBlur(img,(5,5),1)
cv_show('aussian',aussian)
#中值滤波,相当于将最中间的数用中值(从小到大排列,最中间的那个数)代替
median=cv2.medianBlur(img,5) #5为取的像素尺寸,越大越模糊,越小越清晰
cv_show('median',median)
#展示所有的
res=np.hstack((blur,aussian,median)) #按水平方向(列顺序)堆叠数组构成一个新的数组,堆叠的数组需要具有相同的维度
cv_show('all',res)



