实现功能:图像模糊、滤波

代码实现:

/****************************
功能:图像模糊、滤波
****************************/

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;

int main(int argc, char** argv) {
	Mat src, dst1,dst2,dst3,dst4;
	src = imread("C:/usr/opencv-test/Testpictures/sight.jpg");
	if (src.empty())
	{
		printf("load image failed!\n");
		return -1;
	}
	namedWindow("input image", WINDOW_AUTOSIZE);
	imshow("input image", src);

	blur(src, dst1, Size(5, 5), Point(-1, -1));  //均值滤波
	imshow("image blur", dst1);

	GaussianBlur(src, dst2, Size(5, 5), 11, 11); //高斯滤波
	imshow("image gaussianblur",dst2);

	//降噪(椒盐噪声)
	Mat src3 = imread("C:/usr/opencv-test/Testpictures/jiaoyan.png");  //jiaoyan.png带椒盐噪声的图片
	imshow("src3 image", src3);

	medianBlur(src3, dst3, 3);  //中值滤波
	imshow("medianblur image", dst3);

	bilateralFilter(src3, dst4, 15, 150, 3); //双边滤波
	imshow("bilateralFilter image", dst4);

	//双边模糊基础上再加一个对比度增强
	Mat dst5;
	Mat kernel = (Mat_<int>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
	filter2D(dst4, dst5, -1, kernel, Point(-1, -1), 0);
	imshow("bilateralFilter+contrast image", dst5);


	waitKey(0);
	return 0;
}

执行效果:

Opencv----图像模糊

Opencv----图像模糊 

相关文章: