opencv4.5.1自学(5)——线性滤波

1、图像卷积

opencv4.5.1自学(5)——线性滤波_第1张图片
对应相乘累加

2、方框滤波(box Filter)

函数:

CV_EXPORTS_W void boxFilter(InputArray src,OutputArray dst, int ddepth, Size ksize, Point anchor=Point(-1,-1), boolnormalize=true, int borderType=BORDER_DEFAULT )
  • 第一个参数为输入图像,可以处理任意通道数的图片,待处理的图片深度应该为CV_8U, CV_16U, CV_16S, CV_32F 以及CV_64F之一。
  • 第二个参数为目标图像。
  • 第三个参数为输出图像深度。即分辨率,-1表示和原图一样
  • 第四个参数为内核大小
    所用的核为opencv4.5.1自学(5)——线性滤波_第2张图片
  • 第五个参数为被平滑的点
  • 第六个参数为是否归一化
    opencv4.5.1自学(5)——线性滤波_第3张图片
    当归一化时,方框滤波即为均值滤波,非归一化用于计算像素领域的积分特性。
  • 第七个参数用于推断图像外部像素的某种边界模式。一般不用管。
    调用实例:
//载入原图
Mat image=imread("2.jpg");
//进行均值滤波操作
Mat out;
boxFilter(image, out, -1,Size(5, 5));

均值滤波缺陷:破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。
均值滤波函数:

CV_EXPORTS_W void blur(InputArray src, OutputArraydst, Size ksize, Point anchor=Point(-1,-1), int borderType=BORDER_DEFAULT )

参数与上面类似。
调用实例:

//载入原图
Mat image=imread("1.jpg");
//进行均值滤波操作
Mat out;
blur(image, out, Size(7, 7));

3、高斯滤波

二维零均值离散高斯函数:在这里插入图片描述
opencv中函数原型:

CV_EXPORTS_W void GaussianBlur(InputArray src,OutputArray dst, Size ksize, double sigmaX, double sigmaY=0, intborderType=BORDER_DEFAULT )

第一个参数为输入图像,第二个参数为目标图像,第三个参数为内核大小,第四个参数为高斯函数在x方向的标准偏差,第五个参数为在y方向的偏差,第六个参数不用管。
调用实例:

//载入原图
Mat image=imread("1.jpg");
//进行滤波操作
Mat out;
GaussianBlur( image, out, Size( 5, 5 ), 0, 0 ); 

你可能感兴趣的:(opencv,opencv)