我先用FAST作角点检测然后用SIFT计算特征向量,FLANN进行匹配这样没问题但是输出角点坐标是整数。
当想用亚像素角点更精确时,页面显示代码没问题但是却运行不出来
Size winSize = Size(5, 5);
Size zeroZone = Size(-1, -1);
cv::TermCriteria criteria = cv::TermCriteria(
cv::TermCriteria::MAX_ITER + cv::TermCriteria::EPS,
40,
0.01);
cornerSubPix(matchImg, matches, winSize, zeroZone, criteria);
//输出角点信息
cout << "角点信息为:" << matches.size() << endl;
//绘制角点
int index1, index2;
for (int i = 0; i < matches.size(); i++)//将匹配的特征点坐标赋给point
{
index1 = matches.at(i).queryIdx;
index2 = matches.at(i).trainIdx;
cout << keypoints_1.at(index1).pt.x << " "
<< keypoints_1.at(index1).pt.y << " "
<< keypoints_2.at(index2).pt.x << " "
<< keypoints_2.at(index2).pt.y << endl;
}
waitKey(0);
return(0);
}