如何在opencv中相应地对blob进行排序?我所有的斑点都散布在图像上。我希望它在右下方成为第一个Blob。第二个Blob从第一个Blob的左下角到最后一个Blob的左上角。我需要一些有关如何处理它的建议。谢谢。

最佳答案

我会尝试这样的..

bool sortBlobs(CBlob first, CBlob second) {

return first.x > second.x;
}


int main() {


  std::vector<CBlob> blobvector;

  CBlobResult blobs;

  // ...
  // find blobs here ...
  // ...

  for (int i = 0; i < blobs.GetNumBlobs(); i++ )
  {
    blobvector.push_back(blobs.GetBlob(i));
  }

  // now sort the vector
  std::sort(blobvector.begin(), blobvector.end(), sortBlobs);

  // ...
}

关于c++ - 在opencv中相应地对blob进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10478342/

10-11 21:24