OpenCV之方框滤波:boxFilter函数(C++实现)

 

boxFilter函数的作用是使用方框滤波来模糊一张图片,函数原型:

void boxFilter(InputArray src, OutputArray dst, int ddepth, Size ksize, Point anchor=Point(-1, -1), boolnormalize=true, int borderType=BORDER_DEPAULT)

第一个参数:InputArray类型的src,输入图像,Mat类的对象。该函数对通道是独立处理的,且可以处理任意通道数的图像,但是待处理的图像深度应该是CV_8U,CV_16U,CV_16S,CV_32F,CV_64F。

第二个参数:OutputArray类型的dst,目标图像,需要和输入图像有相同的尺寸和类型。

第三个参数:int类型的ddepth,输出图像的深度。-1表示使用原图深度,即src.depth。

第四个参数:Size类型的lsize,内核的大小。一般用Size(w,h)的写法表示,例如Size(3,3),Size(5,5)。

第五个参数:Point类型anchor,表示锚点,即被平滑的那个点,默认值是Point(-1,-1)。如果这个点的坐标是负值的话,就表示取核的中心为锚点。

第六个参数:bool类型的normalize,默认值是true,表示内核是否其区域归一化。

第七个参数:int类型的borderType,用于推断图像外部像素的某种边界模式,默认值 BORDER_DEFAULT,我们一般不管它。

代码示例:

#include 
#include 
#include 

using namespace cv;
using namespace std;

Mat imageBlur(Mat srcImage);
int main() {
    Mat srcImage = imread("/Users/dwz/Desktop/cpp/1.jpg");
    Mat dstImage;
    boxFilter(srcImage, dstImage, -1, Size(5, 5));
    imwrite("boxblured.jpg", dstImage);
    return 0;
}

输入:

OpenCV之方框滤波:boxFilter函数(C++实现)_第1张图片

输出:

OpenCV之方框滤波:boxFilter函数(C++实现)_第2张图片

 

 

 

你可能感兴趣的:(C++,opencv,图像处理,c++,opencv,计算机视觉)