gpt4 book ai didi

c++ - 如何使用 SimpleBlobDetector 获取 blob 的额外信息?

转载 作者:太空狗 更新时间:2023-10-29 23:26:36 28 4
gpt4 key购买 nike

@robot_sherrick 回答了我 this question ,这是他回答的后续问题。

Opencv 2.4 中的

cv::SimpleBlobDetector 看起来非常令人兴奋,但我不确定我能否让它用于更详细的数据提取。

我有以下问题:

  • 如果这只返回 blob 的中心,我不能得到一个完整的、带标签的垫子,对吗?
  • 如何访问检测到的 Blob 的特征,例如面积、凸度、颜色等?
  • 我可以用这个显示精确的分割吗? (比如瀑布)

最佳答案

所以代码应该是这样的:

cv::Mat inputImg = imread(image_file_name, CV_LOAD_IMAGE_COLOR);   // Read a file
cv::SimpleBlobDetector::Params params;
params.minDistBetweenBlobs = 10.0; // minimum 10 pixels between blobs
params.filterByArea = true; // filter my blobs by area of blob
params.minArea = 20.0; // min 20 pixels squared
params.maxArea = 500.0; // max 500 pixels squared
SimpleBlobDetector myBlobDetector(params);
std::vector<cv::KeyPoint> myBlobs;
myBlobDetector.detect(inputImg, myBlobs);

如果您想要在图像上突出显示这些关键点:

cv::Mat blobImg;    
cv::drawKeypoints(inputImg, myBlobs, blobImg);
cv::imshow("Blobs", blobImg);

要访问关键点中的信息,您只需像这样访问每个元素:

for(std::vector<cv::KeyPoint>::iterator blobIterator = myBlobs.begin(); blobIterator != myBlobs.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;
}

注意:这还没有编译,可能有拼写错误。

关于c++ - 如何使用 SimpleBlobDetector 获取 blob 的额外信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13534723/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com