4.空间域平滑滤波

目录

一 基本概念

平滑空间滤波器都包括什么?

平滑空间滤波器的作用是什么?(低通滤波)

二 平滑线性滤波器

三 中值滤波器

什么是统计排序(非线性)滤波器(中值滤波器)?

中值滤波器有哪些应用?

为什么中值滤波器对椒盐噪声比较有效?

四 空间域高斯滤波

什么是空间域高斯滤波?

高斯滤波核怎么算?

高斯核标准差如何确定?

五 示例代码


 数字图像处理的配套视频教程:

1.【冈萨雷斯-数字图像处理】开始安排续数字图像处理的教程_哔哩哔哩_bilibili

2. 数字图像处理通俗教程-冈萨雷斯_哔哩哔哩_bilibili



一 基本概念

平滑空间滤波器都包括什么?

  • 1.平滑线性滤波器
  • 2.中值滤波器
  • 3.高斯滤波器

平滑空间滤波器的作用是什么?(低通滤波)

  • 1.模糊处理:大目标提取之前先去掉图像中的琐碎细节        
  • 2.降低噪声:典型的噪声是由于灰度级的急剧变化引起的

滤波原理:滤波就是将核与图像做卷积,得到的卷积结果就是滤波结果

二 平滑线性滤波器

定义:所有系数都相等的滤波器

下图是几个不同kernel size 对应的平滑结果

结论:核的尺寸越大越模糊,且当目标的灰度与其相邻像素的灰度相近时,会有模糊目标的混合效应【模糊处理示例】

那么平滑线性滤波器(盒装滤波器)的作用是什么?

答:为了对感兴趣的物体得到一个粗略的描述而模糊一幅 图像,示例如下:

说明:模糊之后,小目标被拉得跟背景接近,或融于背景,因此再根据大目标的灰度值选一个阈值,便能很好的提取目标(目前项目中大量用到这个原理)

三 中值滤波器

什么是统计排序(非线性)滤波器(中值滤波器)?

像素邻域内灰度的中值来替换目标像素

中值滤波器有哪些应用?

用于去除椒盐噪声

为什么中值滤波器对椒盐噪声比较有效?

由于椒盐噪声是由黑点或白点叠加到图像上的,且黑白点相当于极大值和极小值        ,而中值滤波是用中值替代这些极大值或极小值,因此效果比较明显。

示例如下:

说明:不同的应用选择不同的滤波器,前提是要熟悉滤波器的原理

四 空间域高斯滤波

什么是空间域高斯滤波?

高斯滤波器是一种线性滤波器,能够有效的抑制噪声,平滑图像。 其作用原理和均值滤波器类似,都是取滤波器窗口内的像素的均值作为输出      

高斯滤波核怎么算?

将各个位置的坐标带入到高斯函数中,得 到的值就是模板的系数。 对于窗口模板的大小 为 (2k+1)×(2k+1),模板中各个元素值的

计算公式如下:

高斯核标准差如何确定?

标准差代表着数据的离散程度,如果σ较小,那么生成的模板的中心系数较大,而周围的系数较小,这样对图像的平滑效果就不是很明显;反之,σ较大,则生成的模板的各个系数相差就不是很大,比较类似均值模板,对图像的平滑效果比较明显                      

σ越大,则图形越宽,尖峰越小,图形较为平缓;σ越小,则图形越窄,越集中,中间部分也就越尖,图形变化比较剧烈

结论:

  • (1)σ越大,分布越分散,各部分比重差别不大,类似于平均模板;          
  • (2)σ越小,分布越集中,中间部分所占比重远远高于其他部分,就相当于取中间值的运算。

 示例代码如下:


 

五 示例代码

空间域平滑的几个OpenCV函数示例如下


bool CImageProcess::Blur(Mat &img, Mat &out, Filter_Type eType, int nSize, float fSigmaX, float fSigmaY)
{
	if (img.empty() || nSize == 0)
	{
		return false;
	}
	switch (eType)
	{
	case TYPE_MEAN:
		blur(img, out, Size(nSize, nSize));
		break;
	case TYPE_GUSSIAN:
		//fSigmaX: 高斯函数X方向的标准差
		//fSigmaY: 高斯函数Y方向的标准差
		GaussianBlur(img, out, Size(nSize, nSize), fSigmaX, fSigmaY);
		break;
	case TYPE_MEDIAN:
		medianBlur(img, out, nSize);
		break;
	case TYPE_bILATERAL:
	{
		float fSigmaColor = fSigmaX;
		float fSigmaSpace = fSigmaY;
		//nSize : 扫描过程中每个邻域的半径大小
		//fSigmaColor:: 颜色空间过滤器的sigma值,这个参数的值月大,表明该像素邻域内有月宽广的颜色会被混合到一起,产生较大的半相等颜色区域
		//fSigmaSpace: 坐标空间中滤波器的sigma值,如果该值较大,则意味着颜色相近的较远的像素将相互影响,从而使更大的区域中足够相似的颜色获取相同的颜色
		bilateralFilter(img, out, nSize, fSigmaColor, fSigmaSpace);
	}
		break;
	default:
		break;
	}
	return true;
}

bool CImageProcess::BlurH(Mat &img, Mat&out, int nSize)
{
	if (img.empty() || nSize == 0)
	{
		return false;
	}
	blur(img, out, Size(nSize, 1));
	return true;

}
bool CImageProcess::BlurV(Mat &img, Mat&out, int nSize)
{
	if (img.empty() || nSize == 0)
	{
		return false;
	}
	blur(img, out, Size(1, nSize));
	return true;
}

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值