#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int a, b, c;//三种滤波
int a_c, b_c, c_c;
Mat d, e;//原图像,输出图像
void Feed_Back(int, void*) {
if (a != a_c) {//方框滤波
boxFilter(d, e, -1, Size(a, a));
a_c = a;
}
if (b != b_c) {//均值滤波
blur(d, e, Size(b, b));
b_c = b;
}
if (c != c_c) {//高斯滤波
GaussianBlur(d, e, Size(c*2+1, c*2+1),0,0);
c_c = c;
}
imshow("效果图", e);
}
int main() {
namedWindow("原图", CV_WINDOW_NORMAL);
namedWindow("效果图", CV_WINDOW_NORMAL);
d = imread("F:\\3.jpg", 4);
d.copyTo(e);
imshow("原图", d);//显示原图
a = a_c = 3;
b = b_c = 3;
c = c_c = 3;
createTrackbar("方框滤波", "效果图", &a, 40, Feed_Back);
createTrackbar("均值滤波", "效果图", &b, 40, Feed_Back);
createTrackbar("高斯滤波", "效果图", &c, 40, Feed_Back);
//创建三个滑动条
Feed_Back(a,0);
Feed_Back(b,0);
Feed_Back(c,0);
waitKey(0);
return 0;
}
opencv 三种图像摸糊处理
最新推荐文章于 2022-06-23 17:00:54 发布