zoukankan      html  css  js  c++  java
  • OpenCV --Shi-Tomasi角点检测算法

    Shi-Tomasi算子是1994年在文章《good Features To Track》中被提出的,opencv实现此算法的函数就被命名为goodFeaturesToTrack。

    代码:

    //Shi-Tomasi算子
    cv::Mat BasicAlgorithm::on_Shi_Tomasi(cv::Mat mat, int value)
    {
        Mat g_srcImage, g_grayImage;
        g_srcImage = mat;
        int g_maxCornerNumber = value;
        int g_maxTrackbarNumber = 500;
        RNG g_rng(12345);//初始化随机数生成器
    
        cvtColor( g_srcImage, g_grayImage, COLOR_BGR2GRAY );
    
        //【1】对变量小于等于1时的处理
        if( g_maxCornerNumber <= 1 ) { g_maxCornerNumber = 1; }
    
        //【2】Shi-Tomasi算法(goodFeaturesToTrack函数)的参数准备
        vector<Point2f> corners;
        double qualityLevel = 0.01;//角点检测可接受的最小特征值
        double minDistance = 10;//角点之间的最小距离
        int blockSize = 3;//计算导数自相关矩阵时指定的邻域范围
        double k = 0.04;//权重系数
        Mat copy = g_srcImage.clone();	//复制源图像到一个临时变量中,作为感兴趣区域
    
    
        //【3】进行Shi-Tomasi角点检测
        goodFeaturesToTrack( g_grayImage,//输入图像
                             corners,//检测到的角点的输出向量
                             g_maxCornerNumber,//角点的最大数量
                             qualityLevel,//角点检测可接受的最小特征值
                             minDistance,//角点之间的最小距离
                             Mat(),//感兴趣区域
                             blockSize,//计算导数自相关矩阵时指定的邻域范围
                             false,//不使用Harris角点检测
                             k );//权重系数
    
        //【4】绘制检测到的角点
        int r = 4;
        for( int i = 0; i < corners.size(); i++ )
        {
            //以随机的颜色绘制出角点
            circle( copy, corners[i], r, Scalar(g_rng.uniform(0,255), g_rng.uniform(0,255),
                                                g_rng.uniform(0,255)), -1, 8, 0 );
    
            //        circle( copy, corners[i], r, Scalar(255, 0, 0), -1, 8, 0 );  //opencv中图像通道为BGR,(255,0,0)为蓝色,绘制出为蓝色点
        }
        return copy;
    }
    

      

      

  • 相关阅读:
    hihocoder 1049 后序遍历
    hihocoder 1310 岛屿
    Leetcode 63. Unique Paths II
    Leetcode 62. Unique Paths
    Leetcode 70. Climbing Stairs
    poj 3544 Journey with Pigs
    Leetcode 338. Counting Bits
    Leetcode 136. Single Number
    Leetcode 342. Power of Four
    Leetcode 299. Bulls and Cows
  • 原文地址:https://www.cnblogs.com/zzzsj/p/14486666.html
Copyright © 2011-2022 走看看