调用两个API,一个是均值模糊,一个是高斯模糊。如下所示:

#include<opencv2/opencv.hpp>
#include<iostream> using namespace std;
using namespace cv; int main(int argc, char **argv)
{
Mat src = imread("D:/meinv.jpg");
cvNamedWindow("src_image", CV_WINDOW_AUTOSIZE);
imshow("src_image", src); //均值滤波
Mat dst;
blur(src, dst, Size(, ), Point(-, -)); //size(5,5)为5*5的模板,Point(-1,-1)默认卷积核在中心像素位置
//blur(src, dst, Size(1, 71), Point(-1, -1)); //y方向的模糊
//blur(src, dst, Size(71, 1), Point(-1, -1)); //x方向的模糊
imshow("blur_demo", dst);
imwrite("D:/learn-opencv/blur.jpg", dst); //高斯滤波
Mat dst2;
GaussianBlur(src, dst2, Size(, ), , );
imshow("gaussian_demo", dst2);
imwrite("D:/learn-opencv/gaussian.jpg", dst2);
waitKey();
return ;
}

显示结果:

(1)原图像

图像的模糊-opencv-LMLPHP

(2)均值模糊(5*5)模板

图像的模糊-opencv-LMLPHP

(3) x方向的均值模糊:

图像的模糊-opencv-LMLPHP

(4)y方向的均值模糊

图像的模糊-opencv-LMLPHP

(4)高斯模糊

图像的模糊-opencv-LMLPHP

05-25 20:27