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


          在前面一篇教程中,我们通过取局部最大值的方法来处理检测结果,但是从图像中可以看到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中,我们可以在原图像中,显示这些角,可以看到这些角的分布要均匀很多。

        注意,这个方法默认使用Shi and C方法判断定角。Good Features to Track,1994, J. Shi and C。

        在harris角检测中,我们判断R值的大小,image,但在Shi and C的角检测算法中,我们使用公式image,R小于某个阈值,才会判断给区域存在角。当然在cv::goodFeaturesToTrack中,你也可以指定使用harris方法判定角

    image

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

    // 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

    image

    程序代码:参考FirstOpenCV49

    代码下载:http://yunpan.cn/Q4akuTWgAUqqu

  • 相关阅读:
    [Maven]自定义Archetypes
    [集合]LinkedList
    [集合]Arraylist
    [数据结构与算法]最长有效括号32
    [数据结构与算法]深度优先搜索dfs和广度优先搜索bfs
    [Vim] 光标移动到行首、行尾
    [数据结构与算法]给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
    [数据结构与算法]求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。
    IDEA 自动设置compile target变成1.5
    【Java基础】sun.misc.BASE64和Java 8 java.util.Base64区别
  • 原文地址:https://www.cnblogs.com/mikewolf2002/p/3547438.html
Copyright © 2020-2023  润新知