滤波器"/>
100天opencv+C++入门到精通——第三天自定义滤波器
- 均值滤波
均值滤波器的卷积核全是1,卷积核的大小为row*col。
#include<opencv2/opencv.hpp>
#include<iostream>using namespace cv;
using namespace std;int main(int argc, char** argv) {Mat src = imread("D:/C++/zhailaoshi_opencvcourse/lena.jpg", IMREAD_COLOR);if (src.empty()) {printf("could not find image file");return -1;}namedWindow("input", WINDOW_FREERATIO); //WINDOW_AUTOSIZE自动适配图片大小 WINDOW_FREERATIO可以缩放的显示imshow("input", src);// 自定义滤波 - 均值卷积int k = 15;Mat mkernel = Mat::ones(k, k, CV_32F) / (float)(k * k);Mat dst;filter2D(src, dst, - 1, mkernel, Point(-1, -1), 0, BORDER_DEFAULT);imshow("input1", dst);waitKey(0);destroyAllWindows();return 0;
}
显示效果
- 非均值滤波
// 非均值滤波Mat robot = (Mat_<int>(2,2)<<5,0,0,-5);filter2D(src, dst, CV_32F, mkernel,Point(-1, -1), 0, BORDER_DEFAULT);convertScaleAbs(dst, dst);imshow("input2", dst);
- 高斯滤波(高斯模糊)
//高斯模糊GaussianBlur(src, dst, Size(5, 5), 0);imshow("input3", dst);
更多推荐
100天opencv+C++入门到精通——第三天自定义滤波器
发布评论