正在学习《opencv2计算机视觉编程手册》;
编写了一段代码,显示“未定义标识符filter2D”;
问题在于我 没有包含 含有定义filter2D的头文件——#include<opencv2/imgproc/imgproc.hpp>。
修正后的代码如下:
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<iostream>
using namespace cv;
using namespace std;
void sharpen2D(const Mat &image,Mat &result){
Mat kernel(3,3,CV_32F,Scalar(0));
kernel.at<float>(1,1) = 5.0;
kernel.at<float>(0,1) = -1.0;
kernel.at<float>(2,1) = -1.0;
kernel.at<float>(1,0) = -1.0;
kernel.at<float>(2,0) = -1.0;
filter2D(image,result,image.depth(),kernel);
}
int main(void){
Mat image = imread("1.jpg",0);
Mat result;
result.create(image.size(),image.type());
sharpen2D(image,result);
namedWindow("sharpenPic");
imshow("sharpenPic",result);
waitKey(0);
return 0;
}