图像平滑处理
# 引入对应的模块
import cv2
import numpy as np
# 读取图片
img = cv2.imread('images/NOISYCAT.png')
# 定义图像显示函数
def cv_show(name, img):
cv2.imshow(name, img)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 显示原图
cv_show('noisycat',img)
一、 均值滤波
# 简单平均卷积操作 一般卷积核取的是奇数
blur = cv2.blur(img,(3,3))
cv_show('均值滤波', blur)
二、方框滤波
# 基本与均值滤波一致,可以选择归一化,在python中,
# ddepth=参数-1的意思是,图片的颜色通道与规定的一致
box1 = cv2.boxFilter(img, -1, (3,3),normalize=True)
cv_show('boxFliter',box1)
# 使用方框滤波容易出现越界情况,大于255
box2 = cv2.boxFilter(img, -1, (3,3),normalize=False)
cv_show('boxF',box2)
三、高斯滤波
aussian = cv2.GaussianBlur(img, (5,5),1)
cv_show('高斯',aussian)
四、中值滤波
median = cv2.medianBlur(img, 5)
cv_show('median',median)
五、 展示所有的
res = np.hstack((blur,aussian,median))
print(res)
cv_show('median vs average',res)
六、显示结果: