openCV学习4-图像模糊


1.均值滤波。简单来说就是将一个点周围的点的像素和平均值赋给它作为这个点的新值,图像就变得模糊了!

2.高斯滤波。考虑了每个点的权重问题,不会有太夸张的变化。



#include <opencv2\core\core.hpp>  
#include <opencv2\highgui\highgui.hpp>  
#include <opencv2\imgproc\imgproc.hpp>  
#include <opencv2\objdetect\objdetect.hpp>  
#include <opencv2\imgproc\types_c.h>  
#include <opencv2\objdetect\objdetect_c.h>
#include<opencv2/opencv.hpp>
#include<iostream>
#include<cmath>
#include<cstdio>

using namespace std;
using namespace cv;

int main()
{
	Mat src,dst;
	src=imread("pig.jpeg");
	if(src.empty())
	{
		cout<<"!!???"<<endl;
		return -1;
	}
	namedWindow("pig!",1);
	imshow("pig!",src);

	blur(src,dst,Size(11,11),Point(-1,-1));//均值模糊

	namedWindow("out",1);
	imshow("out",dst);
	
	Mat dst2;
	GaussianBlur(src,dst2,Size(11,11),11,11);//高斯模糊

	namedWindow("out2",1);
	imshow("out2",dst2);

	waitKey(0);
	return 0;
}

3.中值滤波


4.双边滤波



#include <opencv2\core\core.hpp>  
#include <opencv2\highgui\highgui.hpp>  
#include <opencv2\imgproc\imgproc.hpp>  
#include <opencv2\objdetect\objdetect.hpp>  
#include <opencv2\imgproc\types_c.h>  
#include <opencv2\objdetect\objdetect_c.h>
#include<opencv2/opencv.hpp>
#include<iostream>
#include<cmath>
#include<cstdio>

using namespace std;
using namespace cv;

int main()
{
	Mat src,dst;
	src=imread("pig.jpeg");
	if(src.empty())
	{
		cout<<"!!???"<<endl;
		return -1;
	}
	namedWindow("pig!",1);
	imshow("pig!",src);

	medianBlur(src,dst,3);//中值滤波

	namedWindow("out",1);
	imshow("out",dst);
	
	Mat dst2,dst3;
	bilateralFilter(src,dst2,15,150,3);//双边模糊

	namedWindow("out2",1);
	imshow("out2",dst2);

	Mat ken=(Mat_<int>(3,3)<<0,-1,0,-1,5,-1,0,-1,0);
	filter2D(dst,dst3,-1,ken,Point(-1,-1),0);//再来提高对比度!
	//GaussianBlur(src,dst3,Size(15,15),3,3);
	namedWindow("out3",1);
	imshow("out3",dst3);

	waitKey(0);
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值