学习opencv之各种基本平滑处理

归一化块滤波器:  

        输出像素值是核窗口内像素值的均值 ( 所有像素加权系数相等)

        blur(src, dst, ksize, anchor, borderType)  

         src: 输入图像
         dst: 输出图像
         Size( w,h ): 定义内核大小( w 像素宽度, h 像素高度)
         Point(-1, -1): 指定锚点位置(被平滑点), 如果是负值,取核的中心为锚点,如果是缺省也是这个

高斯滤波器:

          void GaussianBlur(InputArray src, OutputArray dst, Size ksize, double sigmaX, double sigmaY=0, int borderType=BORDER_DEFAULT ) ;

          src和dst当然分别是输入图像和输出图像
          Ksize为高斯滤波器模板大小
          sigmaX和sigmaY分别为高斯滤波在横向和竖向的滤波系数
          borderType为边缘扩展点插值类型

中值滤波器:

           medianBlur(InputArray src, OutputArray dst, int ksize)

           src和dst当然分别是输入图像和输出图像

           Ksize为中值滤波器模板大小

双边滤波器:

           双边滤波器会依据每个像素及其领域构造一个加权平均值,加权计算包括两部分,
           其中第一部分加权方式与高斯平滑中的相同,
           第二部分也属于高斯加权,但不是基于中心像素与其他像素的空间距离之上的加权,而是基于其他像素与中心像素的亮度差值的加权。
           可以将高斯模糊视为高斯平滑,对相似的像素赋予较高的权重,不相似的像素赋予较小的权重。

           bilateralFilter(InputArray src, OutputArray dst, int d, double sigmaColor, double sigmaSpace,int borderType=BORDER_DEFAULT )

           src和dst当然分别是输入图像和输出图像。
          d为每个像素领域的直径,
          sigmaColor为颜色空间的标准偏差,
          sigmaSpace为坐标空间的标准偏差。
          borderType为边缘点插值类型。

代码演示如下:

// 1.1.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include"opencv243.h"

using namespace std;
using namespace cv;

Mat dst;

//归一化块滤波器
void blurs(Mat image)
{
	blur(image,dst,Size(5,5));
}
//高斯滤波
void Gblur(Mat image)
{
	GaussianBlur(image,dst,Size(5,5),0,0);
}
//中值滤波器
void Mblur(Mat image)
{
	medianBlur(image,dst,5);
}

//双边滤波
void Bblur(Mat image)
{
	bilateralFilter(image,dst,10,40,150);
}


int _tmain(int argc, _TCHAR* argv[])
{
	Mat image=imread("C:\\Users\\sony\\Desktop\\Lena.jpg");
	if(image.empty()) 
		return -1;
	
	/*blurs(image);
	imshow("Normalized Box Filter",dst);*/

	/*Gblur(image);
	imshow("Gaussian filter",dst);*/

	
	/*Mblur(image);
	imshow("Median Filter",dst);*/

	Bblur(image);
	imshow("Bilteral Filter",dst);


	waitKey(0);

	return 0;
}

           

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值