随笔 - 632  文章 - 17  评论 - 54  阅读 - 92万

OpenCV使用goodFeaturesToTrack实现角点检测

一、概述

  案例:使用goodFeaturesToTrack实现角点检测

  特点:goodFeaturesToTrack的检测速度比cornerHarris角点检测的速度更加快速,且API的使用更加方便

1
goodFeaturesToTrack(src,corners,maxCorners,quality_level,min_distance,Mat(),block_size,use_harris,k);<br>1.src:输入图像,输入的图像必须是8位或32位单通道图像<br>2.corners:输出的角点使用vector<Point2f>存储<br>3.maxCorners:最大角点数目,也就是corners集合中能存放的最大交点数,也就是最强的前corners个角点<br>4.quality_level:质量水平系数,是0.01~1之间的系数,其中系数越大检测到的角点就越少,反之亦然<br>5.min_distance:角点之间的最小距离,小于此距离的角点会被忽略,距离越大有可能检测到的角点就越少<br>6.Mat()掩码,mask=0忽略,基础用法忽略即可<br>7.block_size:Sobel算子,使用的邻域,四邻域,八邻域等 3,5,7<br>9.user_harris:是否使用harris检测,true是,false否<br>10.k:harris角点检测时使用一般为0.04,user_harris=false时此参数会被忽略

  角点检测步骤:

    1.加载原图

    2.图像灰度化

    3.执行角点检测

    4.绘制角点并显示图像  

二、代码示例

复制代码
 updateParams(min_distanceEidt->text().toDouble(),block_sizeEdit->text().toInt());
    src = imread(filePath.toStdString().c_str());//加载原图
    if(src.empty()){
        qDebug()<<"Error file is empty";
        return;
    }
//    imshow("src",src);
    cvtColor(src,gray,COLOR_BGR2GRAY);//转为灰度图
//    imshow("gray",gray);
    //执行角点检测
    vector<Point2f> corners;//检测出的角点
    goodFeaturesToTrack(gray,corners,maxCorners,quality_level,min_distance,Mat(),block_size,use_harris,k);
    //将角点绘制出来
    for(size_t t = 0;t<corners.size();t++){
        circle(src,corners[t],3,Scalar(0,0,255),1,LINE_8);
    }
    QImage image = ImageUtils::matToQImage(src);
    QPixmap pixmap = QPixmap::fromImage(image);
    QGraphicsPixmapItem *item = new QGraphicsPixmapItem(pixmap.scaled(this->size(),Qt::KeepAspectRatio,Qt::SmoothTransformation));
    scene.addItem(item);
复制代码

 

三、演示图片

 

posted on   飘杨......  阅读(1474)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
历史上的今天:
2021-03-13 Android将Bitmap缩放到指定大小,并可兼容特殊机型,如三星、一加手机等
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示