OpenCV入门:平滑处理 — 双边平滑

平滑处理 — 双边平滑

相关函数:

C++: void bilateralFilter(InputArray src, OutputArray dst, int d, double sigmaColor, double sigmaSpace, intborderType=BORDER_DEFAULT )

参数解析:

  • src – 源必须是8位或者浮点数,1或者3通道图片。
  • dst – 输出图片,和输入图片相同大小和深度。
  • d – 在滤波过程中使用的各像素邻域直径,如果这是一个非整数,则这个值由sigmaSpace决定。
  • sigmaColor – 颜色空间的标准方差。数值越大,意味着越远的的颜色会被混进邻域内,从而使更大的颜色段获得相同的颜色。
  • sigmaSpace – 坐标空间的标注方差。 数值越大,以为着越远的像素会相互影响,从而使更大的区域足够相似的颜色获取相同的颜色。当d>0,d指定了邻域大小且与sigmaSpace无关。否则,d正比于sigmaSpace


相关实例:

#include<opencv2/core/core.hpp>  
#include<opencv2/highgui/highgui.hpp>  
#include"opencv2/imgproc/imgproc.hpp"  
#include <stdio.h>  

using namespace cv;

/*
双边平滑:void bilateralFilter(InputArray src, OutputArray dst, int d, double sigmaColor, double sigmaSpace, intborderType=BORDER_DEFAULT )

参数解析:
src – 源必须是8位或者浮点数,1或者3通道图片。
dst – 输出图片,和输入图片相同大小和深度。
d – 在滤波过程中使用的各像素邻域直径,如果这是一个非整数,则这个值由sigmaSpace决定。
sigmaColor – 颜色空间的标准方差。数值越大,意味着越远的的颜色会被混进邻域内,从而使更大的颜色段获得相同的颜色。
sigmaSpace – 坐标空间的标注方差。 数值越大,以为着越远的像素会相互影响,从而使更大的区域足够相似的颜色获取相同的颜色。当d>0,d指定了邻域大小且与sigmaSpace无关。否则,d正比于sigmaSpace。
**/

int main() {
	cvNamedWindow("双边平滑原图", 0);
	cvNamedWindow("双边平滑效果图",0);

	Mat imageSrc = imread("寒冰射手.jpg");
	imshow("双边平滑原图", imageSrc);
	Mat imageChange;

	//双边平滑处理
	bilateralFilter(imageSrc, imageChange, 3, 3 * 2, 3 / 2);
	//显示效果图  
	imshow("双边平滑效果图", imageChange);

	waitKey(6000 * 100);
}

效果图(好像没多大区别。。。)



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值