小编HM *_*man的帖子

如何使用 Opencv 从 Harris 角点检测器中提取关键点

  • 首先,我会用它cv::cornerHarris()来检测角落(我可以轻松做到)。
  • 其次,我想从哈里斯探测器中提取关键点并将其存储在其中std::vector<KeyPoint>(我不知道该怎么做)。稍后我将使用它来计算描述符并匹配它们。
  • 我可以很容易地使用 SURF 来完成它们,但我想使用 Harris 角点检测器来完成。

    /// Detecting corners
    cv::cornerHarris(leftRoi, dst, blockSize, apertureSize, k, BORDER_DEFAULT);
    
    /// Normalizing
    normalize(dst, dst_norm, 0, 255, NORM_MINMAX, CV_32FC1, Mat());
    convertScaleAbs(dst_norm, dst_norm_scaled);
    
    /// Drawing a circle around corners
    for (int j = 0; j < dst_norm.rows; j++)
    {
        for (int i = 0; i < dst_norm.cols; i++)
        {
            if ((int)dst_norm.at<float>(j, i) > 165)
            {
    
                circle(dst_norm_scaled, Point(i, j), 5, Scalar(0), 2, 8, 0);
            }
        }
    }
    /// Showing the result
    namedWindow("corners_window", CV_WINDOW_AUTOSIZE); …
    Run Code Online (Sandbox Code Playgroud)

feature-extraction keypoint corner-detection

6
推荐指数
1
解决办法
4604
查看次数