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.示例代码

复制代码
void  Tomas_f(Mat mat){
    Mat gray;
    cvtColor(mat,gray,COLOR_BGR2GRAY);
    //提取角点
    int maxCorners=100;//检测角点数目
    double quality_level=0.01;//质量等级
    double  minDistance=0.04;//两个角点之间的最小欧式距离
    vector<Point2f> corners;
    goodFeaturesToTrack(gray,corners,maxCorners,quality_level,minDistance,Mat(),3, false);
    //绘制角点
    vector<KeyPoint> keyPoints;//存放角点的KeyPoint类,用于后期绘制角点时使用
    for(int i=0;i<corners.size();i++){
        //将角点存放在KeyPoint类中
        KeyPoint keyPoint;
        keyPoint.pt=corners[i];
        keyPoints.push_back(keyPoint);
    }
    //用drwaKeyPoints()函数绘制角点坐标
    drawKeypoints(mat,keyPoints,mat);
    imwrite("/sdcard/DCIM/mat.png",mat);
}
相关推荐
深蓝学院4 分钟前
开源|上海AILab:自动驾驶仿真平台LimSim Series,兼容端到端/知识驱动/模块化技术路线
人工智能·机器学习·自动驾驶
一点.点4 分钟前
LLM应用于自动驾驶方向相关论文整理(大模型在自动驾驶方向的相关研究)
人工智能·深度学习·机器学习·语言模型·自动驾驶·端到端大模型
云天徽上14 分钟前
【数据可视化-41】15年NVDA, AAPL, MSFT, GOOGL & AMZ股票数据集可视化分析
人工智能·机器学习·信息可视化·数据挖掘·数据分析
EasyDSS15 分钟前
EasyCVR视频汇聚平台助力大型生产监控项目摄像机选型与应用
网络·人工智能·音视频
qq_4369621823 分钟前
奥威BI+AI数据分析解决方案
人工智能·数据挖掘·数据分析·ai数据分析
freexyn29 分钟前
Matlab自学笔记五十二:变量名称:检查变量名称是否存在或是否与关键字冲突
人工智能·笔记·算法·matlab
roc-ever33 分钟前
用Python做有趣的AI项目5:AI 画画机器人(图像风格迁移)
人工智能·python·深度学习
说私域34 分钟前
从大众传媒到数字生态:开源AI智能名片链动2+1模式S2B2C商城小程序驱动的营销革命
人工智能·小程序·开源·零售
群联云防护小杜35 分钟前
云服务器被黑客攻击应急响应与加固指南(上)
运维·服务器·人工智能·tcp/ip·自动化·压力测试
YuforiaCode37 分钟前
第十二届蓝桥杯 2021 C/C++组 空间
c语言·c++·蓝桥杯