/*、1.方框滤波:boxFilter函数(注:均值滤波是归一化后的方框滤波)*/
/*函数原型: void boxFilter(InputArray src, OutputArray dst, int ddepth,Size ksize,Point anchor=Point(-1,-1),boolnormalize=true,int boderType=BORDER_DEFAULT) */
/*参数详解: InputArray src-----源图像 OutputArray dst----目标图像 int ddepth----输出图像深度,输出图像深度,“-1”代表使用原图深度,即src.depth() Size ksize----内核的大小,写法size(5x5),就表示5x5的内核大小 Point anchor-----表示锚点,默认值Point(-1,-1),坐标为负值,表示取核的中心 boolnormalize-----表示内核是否被其区域归一化,默认值为true boderType----用于推断图像外部像素的某种边界模式,默认值BORDER_DEFAULT*/
/************ 新建QT控制台程序 *************/ #include <QCoreApplication> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream>
using namespace std; using namespace cv; int main() { Mat srcImage=imread("Valley_logo.jpg");//读入原图
namedWindow("均值滤波[原图]"); namedWindow("均值滤波[效果图]"); imshow("均值滤波[原图]",srcImage); //进行均值滤波操作
Mat dstImage; boxFilter(srcImage,dstImage,-1,Size(5,5)); //显示效果图
imshow("均值滤波[效果图]",dstImage); waitKey(0); return 0; }
运行结果如下:
原图 5X5内核 3X3内核