opencv学习日记——可分离图像滤波
1、图像输出结果
为啥滤波之后变得不清晰????
2、代码部分
#include<iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("nazha1.jpg");
if (img.empty())
{
cout << "图片为空";
return -1;
}
//构建滤波器
//输入矩阵 Mat_<类型>(行,列) << 内容
Mat a = (Mat_<float>(3, 1) << -1, 3, -1);
//reshape(通道,行数)
Mat b = a.reshape(1, 1);
Mat ab = a * b;
Mat imgXY1, imgXY2;
//filter2D(原图, 新图, -1为原图类型, 滤波器, 滤波器中心, 偏置, 填充类型)
filter2D(img, imgXY1, -1, ab, Point(-1, -1), 0, BORDER_CONSTANT);
//sepFilter2D(原图, 新图, -1为原图类型, X方向滤波器,Y方向滤波器, 滤波器中心, 偏置, 填充类型)
sepFilter2D(img, imgXY2, -1, a, b, Point(-1, -1), 0, BORDER_CONSTANT);
imshow("原图", img);
imshow("imgXY1", imgXY1);
imshow("imgXY2", imgXY2);
waitKey(0);
return 0;
}