【Emgu CV教程】6.9、图像平滑之EdgePreservingFilter()保边滤波


一、介绍

1.原理

EdgePreservingFilter()保边滤波也是非线性滤波,同时考虑了距离信息和色彩信息。注意它的特点:

1、可以模糊图像,保留边缘。
2、功能和双边滤波差不多,但是计算速度比双边滤波要快。

2.函数介绍

官方定义如下:

public static void EdgePreservingFilter(
	IInputArray src,  // 输入图像
	IOutputArray dst, // 输出图像
	EdgePreservingFilterFlag flags = EdgePreservingFilterFlag.RecursFilter, // 保变滤波器类型。
	float sigmaS = 60f, // 控制邻域的大小,越大图像模糊效果越明显
	float sigmaR = 0.4f // 控制邻域内的不同颜色的平均值,越大图像滤波效果越明显
)

二、举例

1.原始素材

原始素材定义为srcMat,如下:
在这里插入图片描述
这是一只可爱的大熊猫。

2.代码

Emgu CV保边滤波代码如下:

Mat tempMat = srcMat.Clone();
Mat dstMat = new Mat();
float sigmaS = 50.0f;
float sigmaR = 0.04f;
CvInvoke.EdgePreservingFilter(tempMat, dstMat, EdgePreservingFilterFlag.RecursFilter, sigmaS, sigmaR);
CvInvoke.Imshow("EdgePreservingFilterimage, " + dstMat.Size.ToString(), dstMat);

3.运行结果

在这里插入图片描述
大熊猫的边缘和竹子的边缘都是很清晰的,但是大熊猫的毛发已经被模糊了,这段程序在我的电脑用时0.12秒。而运行双边滤波大概用了0.03秒。结果就是BilateralFilter()双边滤波的计算速度比EdgePreservingFilter()保边滤波计算速度快很多

不是网上说EdgePreservingFilter()保边滤波速度快吗,我的程序怎么没发现?????


原创不易,请勿抄袭。共同进步,相互学习。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值