opencv中线性和非线性滤波(程序)分析

线性滤波的方框滤波,均值滤波与高斯滤波,属于非线性滤波的中值滤波,双边滤波,对应的程序中都给出了,这是一个综合的测试程序。
#include <opencv2\opencv.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <opencv2\imgproc\imgproc.hpp>

using namespace cv;
using namespace std;

Mat img,img1,img2,img3,img4,img5;
int boxValue=3,boxValueMax=40;
int blurValue=3,blurValueMax=40;
int gaussianValue=3,gaussianValueMax=40;
int medianBlurValue=10,medianBlurValueMax=50;
int bilateralFilterValue=10,bilateralFilterValueMax=50;

void on_boxFilter(int,void*)
{
boxFilter(img,img1,-1,Size(boxValue+1,boxValue+1));
imshow(“方框滤波”,img1);
}
void on_blur(int,void*)
{
blur(img,img2,Size(blurValue+1,blurValue+1),Point(-1,-1));
imshow(“均值滤波”,img2);
}
void on_gaussianFilter(int,void*)
{
GaussianBlur(img,img3,Size((gaussianValue2)+1,(gaussianValue2)+1),0,0);
imshow(“高斯滤波”,img3);
}
void on_MedianBlur(int,void*)
{
medianBlur(img,img4,(2medianBlurValue)+1);
imshow(“中值滤波”,img4);
}
void on_BilateralFilter(int,void
)
{
bilateralFilter(img,img5,bilateralFilterValue,bilateralFilterValue*2,bilateralFilterValue/2);
imshow(“双边滤波”,img5);
}
int main()
{
img=imread(“1.jpg”);
img1=img.clone();
img2=img.clone();
img3=img.clone();
img4=img.clone();
img5=img.clone();
imshow(“原图”,img);
namedWindow(“方框滤波”,1);
createTrackbar(“方框参:”,“方框滤波”,&boxValue,boxValueMax,on_boxFilter);
on_boxFilter(boxValue,0);
namedWindow(“均值滤波”,1);
createTrackbar(“均值参:”,“均值滤波”,&blurValue,blurValueMax,on_blur);
on_blur(blurValue,0);
namedWindow(“高斯滤波”,1);
createTrackbar(“高斯参:”,“高斯滤波”,&gaussianValue,gaussianValueMax,on_gaussianFilter);
on_gaussianFilter(gaussianValueMax,0);
namedWindow(“中值滤波”,1);
createTrackbar("中值参: ",“中值滤波”,&medianBlurValue,medianBlurValueMax,on_MedianBlur);
on_MedianBlur(medianBlurValue,0);
namedWindow(“双边滤波”,1);
createTrackbar(“双边参:”,“双边滤波”,&bilateralFilterValue,bilateralFilterValueMax,on_BilateralFilter);
on_BilateralFilter(bilateralFilterValue,0);
while(char(waitKey(0)) != ‘q’) //按下q键释放程序
{}
return 0;
}
谢谢大家的支持,一天一点点!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值