首页 > 解决方案 > 我使用了 simpleblobdetector 方法,我有两个 blob。但现在我想找到每个 blob 的 x 和 y 点以进行角度检测

问题描述

for (std::vector<cv::KeyPoint>::iterator blobIterator = keypoints.begin(); blobIterator != keypoints.end(); blobIterator++)
{
    std::cout << "size of blob is: " << blobIterator->size << std::endl;
    std::cout << "point is at: " << blobIterator->pt.x << " " << blobIterator->pt.y << std::endl;
}

标签: opencvvisual-c++

解决方案


Blob 检测器不存储单个点。OpenCV Q&A 上也出现了类似的问题

http://answers.opencv.org/question/7540/calculate-blob-angle/

基本上有两种方法建议:

  1. 从主成分分析中找到主轴并找到角度
  2. 只需在附加图像中绘制的 blob 上使用 findCountours。

玩得开心编码!


推荐阅读