空间滤波-高斯低通滤波器
空间 滤波 高斯
2023-09-11 14:15:38 时间
目录
1. 介绍
邻域均值滤波器在平滑图像的时候虽然会降低了噪声,但是同样模糊了图像,这点是我们不希望的。而加权平均滤波器的效果就比邻域均值滤波器好一点,因为它考虑了权重的大小。
我们在模糊图像的时候应该考虑一点的就是距离中心像素的的权重应该大一点,远离中心像素点的影响要弱一些。满足这一特性的话,最好的滤波器是高斯核。
高斯函数的公式:
函数函数的图像:
由公式可知,σ 越小的话,图像应该就越瘦高,所以越靠近中心像素的权重就越大,模糊程度就越弱
2. 代码实现
- src 代表原图
- ksize 代表滤波核的大小,如(3,3)
- sigmaX 水平方向标准差 ,sigmaY 垂直方向标准差
- borderType 在处理的时候暂时不用考虑
这里需要注意的是,sigmaY没有的时候,默认sigmaY = sigmaX 。如果sigmaX ,sigmaY 都为0或者负值的时候,会根据滤波核的大小自动计算
sigma = 0.3 * [ (ksize - 1) * 0.5 - 1] + 0.8
实现效果为:
3. other
书上有个定理,就是说滤波器的 kernel 为6倍σ 的最小奇整数的时候,那么再使用任意大的高斯核得到的结果都是一样的
例如σ = 7,那么kernel 最大的size是 43,在大的size都和43的效果一样
代码为:
import cv2
import numpy as np
img = cv2.imread('./flower.jpg',0)
dst1 = cv2.GaussianBlur(img,(19,19),sigmaX=3) # 3*6 + 1 = 19 最大的size核
dst2 = cv2.GaussianBlur(img,(35,35),sigmaX=3)
diff = cv2.subtract(dst1,dst2) # 得到的差值,不能用减号
cv2.imshow('img',np.hstack((img,dst1,dst2,diff)))
cv2.waitKey()
cv2.destroyAllWindows()
可以验证结论的正确性
相关文章
- PHP命名空间学习笔记
- Google Earth Engine——实时中尺度分析(RTMA)是一个高空间和时间分辨率的近地面天气状况分析。该数据集包括美国全国2.5公里处的每小时分析结果。
- 【python】QQ 空间照片下载器
- Oracle内核技术揭密. 1.1 区:表空间中的基本单位
- wpf中:xaml中的命名空间的引入方法
- VisionPro工具与命名空间对照表
- 如何远程调试运行在嵌入式设备上的用户空间程序?
- openGauss 逻辑结构:表空间管理
- 【Linux:程序地址空间--原来操作系统也喜欢画大饼】
- Cesium专栏-空间分析之坡度分析(附源码下载)
- C++中重要的头文件与命名空间
- 教育大数据想象空间巨大 关键点在获取数据
- Talairach空间、MNI空间、Native空间、Stereotaxic空间
- LaTex Remove Left Margin 去除左边空间
- 让WAN无处不在:SD-WAN尚有巨大发展空间