中值滤波、方框滤波、高斯滤波、均值滤波、膨胀、腐蚀、开运算、闭运算

1.1 常见图像噪声类型
  • 高斯噪声:符合正态分布的随机噪声

  • 椒盐噪声:随机出现的黑白像素点

  • 泊松噪声:光子计数噪声

  • 量化噪声:模拟信号数字化过程中产生

2.1 均值滤波(Averaging Filter)

原理:用邻域像素的平均值替换中心像素值

python 复制代码
blur_3x3 = cv2.blur(noisy_img, (3,3))  # 3×3小窗口

效果分析

  • 窗口越大,去噪效果越强,但图像越模糊

  • 计算速度快,适合实时处理

  • 会模糊边缘和细节

2.2 方框滤波(Box Filter)

原理:均值滤波的通用形式,可选择是否归一化

python 复制代码
# 非归一化方框滤波(像素值可能溢出)
box_nonorm = cv2.boxFilter(noisy_img, -1, (3,3), normalize=False)
# 归一化方框滤波
box_norm = cv2.boxFilter(noisy_img, -1, (3,3), normalize=True)

特殊应用

  • 非归一化滤波可用于局部对比度增强

  • 归一化时与均值滤波效果相同

2.3 高斯滤波(Gaussian Filter)

原理:使用高斯函数作为权重,距离中心越近权重越大

python 复制代码
# 不同标准差的高斯滤波
gauss_small = cv2.GaussianBlur(noisy_img, (5,5), 1)  # 小标准差
gauss_large = cv2.GaussianBlur(noisy_img, (5,5), 3)  # 大标准差

参数选择技巧

  • 标准差σ与窗口大小关系:ksize ≈ (6σ+1)

  • σ越大,平滑效果越强,但计算量也越大

2.4 中值滤波(Median Filter)

原理:用邻域像素的中值替换中心像素值

python 复制代码
# 中值滤波去噪
median_3 = cv2.medianBlur(sp_noisy, 3)
median_5 = cv2.medianBlur(sp_noisy, 5)

适用场景

  • 对椒盐噪声效果显著

  • 能较好保持边缘锐利度

  • 计算复杂度高于线性滤波

1、膨胀:

其原理是:将核在原始图像中进行遍历,然后将原始图像遍历到的像素点的值与自定义卷积核(全为1的二维矩阵)得值进行与运算,像素点与对应核一 一对应进行与,当卷积核对应的元素值只要有一个为1时,设置卷积核中心值的像素点为1,如果全为0,,则其值设置为0.

2、腐蚀:

其原理是:将核在原始图像中进行遍历,然后将原始图像遍历到的像素点的值与自定义卷积核(全为1的二维矩阵)得值进行与运算,像素点与对应核一 一对应进行与,当卷积核对应的元素值均为1时,设置卷积核中心值的像素点为1,否则其值设置为0.

3、开运算原理

1)原理:图像开运算是图像依次经过腐蚀、膨胀处理后的过程。

2)特点:图像被腐蚀后,去除了噪声,但是也压缩了图像;接着对腐蚀过的图像进行膨胀处理,可以去除噪声,并保留原有图像

在OpenCV中,同样提供开运算的库函数,函数原型如下所示

1)、函数原型:result =cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)

  • img:需要进行开运算处理的图像
  • cv2.MORPH_OPEN:图像进行开运算需要填写的参数(进行开运算时,该参数为固定参数不可改变)
  • kernel:卷积核模板,例如kernel = np.ones((5,5), np.uint8),5x5的卷积核

4、闭运算原理

1)、原理:图像开运算是图像依次经过膨胀、再腐蚀处理后的过程

2)、特点:图像先膨胀,后腐蚀,它有助于关闭前景物体内部的小孔,或物体上的小黑点。

  • 闭运算可以消除图像轮廓内部的噪声

OpenCV中,也提供了图像闭运算的函数,和开运算库函数一样,唯一不同则为闭运算对应自己的参数,函数原型如下:

1)、函数原型:result =cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

img:需要进行开运算处理的图像

cv2.MORPH_CLOSE:图像进行闭运算需要填写的参数(进行闭运算时,该参数为固定参数不可改变)

kernel:卷积核模板,例如kernel = np.ones((5,5), np.uint8),5x5的卷积核

相关推荐
脚踏实地皮皮晨13 分钟前
003003001_Grid控件
开发语言·windows·算法·c#·visual studio
Hi李耶25 分钟前
【LeetCode】6-Z字形变换
算法·leetcode·职场和发展
XiaoYu1__34 分钟前
算法进阶·其一:用SCC、Tarjan算法与缩点思想解决有向图的连通关系及2-SAT问题的拓展
算法
小O的算法实验室37 分钟前
AAAI-26,全局相关性学习:通过谱图神经网络增强进化算法
神经网络·学习·算法
段一凡-华北理工大学43 分钟前
AI推动工业智能化转型~系列文章07:分类与诊断算法体系:故障识别的完整工具箱
数据库·人工智能·算法·机器学习·分类·数据挖掘·高炉炼铁智能化
简信CRM44 分钟前
适合离散制造中小工厂 MES 系统推荐
算法·机器学习·制造
AKA__Zas1 小时前
芝士算法(前缀和2.0)
java·数据结构·算法·leetcode·哈希算法·学习方法
皓月斯语1 小时前
B3867 [GESP202309 三级] 小杨的储蓄 题解
c++·算法·题解
半夢半醒11 小时前
[原创]《C#高级GDI+实战:从零开发一个流程图》第章:增加菱形、平行四边形、圆角矩形,文本居中显示
算法·c#·流程图
Jerry2 小时前
LeetCode 90. 子集 II
算法