自学内容网 自学内容网

图像平滑处理

# 引入对应的模块

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)

c67b4aa7f6834e8fb784f1b5d4dfe53f.png

五、 展示所有的
res = np.hstack((blur,aussian,median))
print(res)
cv_show('median vs average',res)

六、显示结果:

ca79a72fd95a4dbcbf71cde3112de40a.png

 


原文地址:https://blog.csdn.net/qq_58739767/article/details/142612199

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!