【python】均值、中值和高斯滤波详解和示例

本文对均值、中值和高斯滤波进行详解,以帮助大家理解和使用。

这里写目录标题

下面是示例中使用的原图。

均值滤波

均值滤波是一种简单的平滑滤波器,它通过将每个像素点的值设置为其邻域内像素点的平均值来消除噪声。均值滤波器通常用于去除高斯噪声和均匀噪声。

python 复制代码
import cv2
import numpy as np

# 读入图像
img = cv2.imread('Noisy.jpg')

# 定义滤波器大小
kernel_size = (5, 5)

# 进行均值滤波
blur = cv2.blur(img, kernel_size)

# 显示原图和滤波后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Blur Image', blur)
cv2.imwrite("meanImage.jpg",blur)
cv2.waitKey(0)
cv2.destroyAllWindows()

效果图:

可以通过改变kernel_size = (5, 5)大小,来改变滤波结果。

中值滤波

中值滤波是一种非线性平滑滤波器,它将每个像素点的值设置为其邻域内像素点中值来消除噪声。中值滤波器通常用于去除椒盐噪声和其他孤立的噪声点。

python 复制代码
import cv2
import numpy as np

# 读入图像
img = cv2.imread('Noisy.jpg')

# 定义滤波器大小
#kernel_size = (5, 5)

# 进行中值滤波
median = cv2.medianBlur(img, 5)

# 显示原图和滤波后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Median Image', median)
cv2.imwrite("zhongImage.jpg",median)
cv2.waitKey(0)
cv2.destroyAllWindows()

高斯滤波

高斯滤波是一种基于高斯函数的平滑滤波器,它通过将每个像素点的值设置为其邻域内像素点的高斯加权平均值来消除噪声。高斯滤波器通常用于去除高斯噪声和其他类型的噪声,同时保留图像的边缘信息。

python 复制代码
import cv2
import numpy as np

# 读入图像
img = cv2.imread('Noisy.jpg')

# 定义滤波器大小和标准差
kernel_size = (9, 9)
sigmaX = 3  # X方向的标准差,可以根据需要调整
sigmaY = 3  # Y方向的标准差,可以根据需要调整

# 进行高斯滤波
gsblur = cv2.GaussianBlur(img, kernel_size, sigmaX, sigmaY)
# 显示原图和滤波后的图像
cv2.imshow('Original Image', img)
cv2.imshow('gsblur Image', gsblur )
cv2.imwrite("gsblur9*9.jpg",gsblur )
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:

核大小为(9,9)

改变核大小为9*9,效果为:

核大小为(51,51)

小结

本文使用的原图噪声级别较高,所以各滤波结果的差距较小,但可以看出,随着核大小的增大,图像变得更平滑,但也变得更模糊。

在应用时,可以调整核的大小,以满足自己的降噪场景和效果。

相关推荐
white-persist24 分钟前
Python实例方法与Python类的构造方法全解析
开发语言·前端·python·原型模式
Java 码农1 小时前
Centos7 maven 安装
java·python·centos·maven
倔强青铜三2 小时前
苦练Python第63天:零基础玩转TOML配置读写,tomllib模块实战
人工智能·python·面试
浔川python社2 小时前
《网络爬虫技术规范与应用指南系列》(xc—3):合规实操与场景落地
python
B站计算机毕业设计之家2 小时前
智慧交通项目:Python+YOLOv8 实时交通标志系统 深度学习实战(TT100K+PySide6 源码+文档)✅
人工智能·python·深度学习·yolo·计算机视觉·智慧交通·交通标志
IT森林里的程序猿2 小时前
基于机器学习方法的网球比赛胜负趋势预测
python·机器学习·django
txwtech2 小时前
第6篇 OpenCV RotatedRect如何判断矩形的角度
人工智能·opencv·计算机视觉
正牌强哥2 小时前
Futures_ML——机器学习在期货量化交易中的应用与实践
人工智能·python·机器学习·ai·交易·akshare
倔强青铜三2 小时前
苦练Python第62天:零基础玩转CSV文件读写,csv模块实战
人工智能·python·面试
郝学胜-神的一滴2 小时前
Effective Python 第43条:自定义容器类型为什么应该从 `collections.abc` 继承?
开发语言·python