• OpenCV教程(46) 快速特征检测


        在计算harris特征角时候,我们要在两个方向计算梯度,计算代价有点大。在paper

    The article by E. Rosten and T. Drummond, Machine learning for high-speed corner detection, in In European Conference on Computer Vision, pp. 430-443, 2006.

    中,作者提出了一种快速的特征检测方法。paper下载:http://yunpan.cn/QDbtIDnBhqUxT

          对于中心点p,半径为3的圆,计算圆周上的点和中心点的灰度值差,如果大于阈值,且这些点组成的弧长大于圆周长的3/4,则中心点p为特征点。如下图所示,在计算时候,可以先计算1,5,9,13处的灰度值差,至少有3个点的差大于阈值,中心点p才有可能是特征点,通过这种方法,能加快特征点的检测。

     

    image

     

    opencv中实现了概算法,下面的代码演示了如何调用快速特征检测:

        // Read input image
        image= cv::imread("../church01.jpg",0);

       //快速特征检测
        keypoints.clear();
        //40是阈值
        cv::FastFeatureDetector fast(40);
        fast.detect(image,keypoints);

        cv::drawKeypoints(image,keypoints,image,cv::Scalar(255,255,255),cv::DrawMatchesFlags::DRAW_OVER_OUTIMG);

        // Display the corners
        cv::namedWindow("FAST Features");
        cv::imshow("FAST Features",image);

    下面左图为快速特征检测的结果,可以看到和good特征检测出的特征点结果很接近。

    imageimage

    程序代码:参考FirstOpenCV49

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

  • 相关阅读:
    JSTL学习总结
    Spring 3 MVC: Create Hello World Application In Spring 3.0 MVC(reprint)
    如何查询端口号被哪个程序占用?
    php 共享内存
    php 消息队列
    php 快速fork出指定个子进程
    批量 kill mysql 中运行时间长的sql
    socket发送http请求
    TCP/IP、Http、Socket的区别
    文本协议和二进制协议
  • 原文地址:https://www.cnblogs.com/mikewolf2002/p/3547439.html
Copyright © 2020-2023  润新知