首页 > 其他 > 详细

OpenCV教程(45) harris角的检测(3)

时间:2014-02-13 14:58:12      阅读:332      评论:0      收藏:0      [点我收藏+]

      在前面一篇教程中,我们通过取局部最大值的方法来处理检测结果,但是从图像中可以看到harris角的分布并不均匀,在纹理颜色比较深的地方检测的harris角结果更密集一些。本章中,我们使用一个简单的策略算法,首先在检测的harris角图像中,找到一个值最大的角,后面的最大值角检测至少要和前面的角有一个距离,这样循环查找角,直到得到指定数目的角位置。

     在OpenCV中,我们可以通过下面的代码得到结果:

// Compute good features to track
std::vector<cv::Point2f> corners;
cv::goodFeaturesToTrack(image,corners,
    500,    // maximum number of corners to be returned
    0.01,    // quality level
    10);    // minimum allowed distance between points

      500是我们需要的harris角数目,0.01是quality level,用作二值化harris角图像,10是两个harris之间的距离。检测结果放在corners中,我们可以在原图像中,显示这些角,可以看到这些角的分布要均匀很多。

bubuko.com,布布扣

我们也可以使用下面的代码得到相同的结果:

// vector of keypoints
std::vector<cv::KeyPoint> keypoints;
// Construction of the Good Feature to Track detector
cv::GoodFeaturesToTrackDetector gftt(
    500,   // maximum number of corners to be returned
    0.01,   // quality level
    10);    // minimum allowed distance between points
// point detection using FeatureDetector method
gftt.detect(image,keypoints);

cv::drawKeypoints(image,        // original image
    keypoints,                    // vector of keypoints
    image,                        // the resulting image
    cv::Scalar(255,255,255),    // color of the points
    cv::DrawMatchesFlags::DRAW_OVER_OUTIMG); //drawing flag

bubuko.com,布布扣

OpenCV教程(45) harris角的检测(3)

原文:http://www.cnblogs.com/mikewolf2002/p/3547438.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!