如何在opencv中相应地对blob进行排序?我所有的斑点都散落在图像上。我希望它在右下角成为第一个 blob。从第一个 blob 到最后一个 blob 的左上角,第二个 blob 位于左下角。我需要一些关于如何处理它的建议。谢谢你。
问问题
1030 次
2 回答
2
我会尝试这样的..
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);
// ...
}
于 2012-05-07T08:55:14.313 回答
0
你在 OpenCV 中使用 cvBlobsLib 吗?对于每个检测到的 blob,您可以通过以下方式获取其区域
CvRect rect = blob->GetBoundingBox();
然后你可以根据 rect.x 对所有的 blob 进行排序。
于 2012-05-07T07:49:54.890 回答