• OpenCV(四十三):Shi-Tomas角点检测


    1.Shi-Tomas角点检测原理

           Shi-Tomasi(也称为Good Features to Track)角点检测算法是一种改进的角点检测方法,它基于Harris角点检测算法,并针对一些不足进行了改进。

           与Harris角点检测不同,Shi-Tomasi使用了更简化的角点响应函数。它选择了自相关矩阵M的较小特征值λmin作为评价角点的依据:

    角点响应函数即为较小特征值

    角点判断如图所示:

    • 当λ1和λ2都小于λmin时,为平面区域
    • 当λ1和λ2都大于λmin时,为角点
    • 当λ1和λ2只有一个大于λmin时,为边缘区域

    2.检测Shi-Tomas角点函数goodFeaturesToTrack() 

    void cv::goodFeaturesToTrack ( InputArray   image,

    OutputArray corners,

    int     maxCorners,

    double     qualityLevel,

    double     minDistance,

    InputArray     mask = noArray(),

    int              blockSize = 3,

    bool       useHarrisDetector =false,

    double       k = 0.04

    )

    • corners:检测到角点的输出量
    • maxCorners:要寻找的角点数目。
    • qualityLevel: 角点阙值与最佳角点的关系,又称质量等级,当参数为0.01,表示角点阙值是最佳角点的0.01倍
    • minDistance:两个角点之间的最小欧式距离
    • mask:掩码矩阵,表示检测角点的区域。
    • blockSize:计算梯度协方差矩阵的尺寸。
    • useHarrisDetector:是否使用Harris角点
    • k:Haris检测角点过程中的常值权重系数

    3.示例代码

    1. void Tomas_f(Mat mat){
    2. Mat gray;
    3. cvtColor(mat,gray,COLOR_BGR2GRAY);
    4. //提取角点
    5. int maxCorners=100;//检测角点数目
    6. double quality_level=0.01;//质量等级
    7. double minDistance=0.04;//两个角点之间的最小欧式距离
    8. vector<Point2f> corners;
    9. goodFeaturesToTrack(gray,corners,maxCorners,quality_level,minDistance,Mat(),3, false);
    10. //绘制角点
    11. vector<KeyPoint> keyPoints;//存放角点的KeyPoint类,用于后期绘制角点时使用
    12. for(int i=0;i<corners.size();i++){
    13. //将角点存放在KeyPoint类中
    14. KeyPoint keyPoint;
    15. keyPoint.pt=corners[i];
    16. keyPoints.push_back(keyPoint);
    17. }
    18. //用drwaKeyPoints()函数绘制角点坐标
    19. drawKeypoints(mat,keyPoints,mat);
    20. imwrite("/sdcard/DCIM/mat.png",mat);
    21. }
  • 相关阅读:
    基于Linux的Web小型服务器HTTP项目的自主实现
    Spring源码中的简单工厂模式
    时区-Linux Java ConnectorJ MySQL-时间戳-EverNote
    JavaScript中事件及其详解
    七、golang基础之interface与类型断言
    Gerrit 使用操作手册
    【场景化解决方案】深度融合钉能力,酷学院打造创新产品体验
    利用优化算法提高爬虫任务调度效率
    大模型微调方法
    【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(二)
  • 原文地址:https://blog.csdn.net/weixin_63357306/article/details/132895300