我是准备使用opencv来做角点检测,代码如下
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
void main() {
int maxCorners = 10;
if (maxCorners < 1) {
maxCorners = 1;
}
/// Parameters for Shi-Tomasi algorithm
Mat srcImg = imread("C:/Users/lenovo/Desktop/校正图片.jpg");
imshow("原始图", srcImg);
Mat srcGray;
//转化为灰度图
cvtColor(srcImg, srcGray, CV_BGR2GRAY);
vector<Point2f> corners;
double qualityLevel = 0.01;
double minDistance = 10;
int blockSize = 9;
bool useHarrisDetector = false;
Mat temp = Mat();
double k = 0.04;
/// 查找角点
goodFeaturesToTrack(srcGray,
corners,
maxCorners,
qualityLevel,
minDistance,
temp,
blockSize,
useHarrisDetector,
k);
/// 标出检测到的角点
for (int i = 0; i < corners.size(); i++) {
circle(srcImg, corners[i], 4, Scalar(0, 255, 0), 2, 8, 0);
printf("第%d个点坐标为:(%d,%d)\n",i,(int)corners[i].x,(int)corners[i].y);
}
/// 显示图片
imshow("角点检测", srcImg);
imwrite("C:/Users/lenovo/Desktop/检测图片.jpg",srcImg);
waitKey(0);
return;
}
然后遇到的问题是,代码一直运行到waitKey(0)都是正确的,显示如图
但是当我点击任意按钮时,系统就报错了,具体报错如图:
希望大神能够帮帮忙,谢谢啊。