opencvでそれに応じてblobを並べ替えるにはどうすればよいですか?画像上にすべてのブロブが散らばっています。最初のブロブになるために右下にしたいと思います。最初のブロブから左上の最後のブロブまで左下にある2番目のブロブ。私はそれに対処する方法についていくつかの提案が必要です。ありがとうございました。
質問する
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を使用していますか?検出されたブロブごとに、次の方法でその領域を取得できます。
CvRect rect = blob->GetBoundingBox();
そして、rect.xに従ってすべてのblobを並べ替えることができます。
于 2012-05-07T07:49:54.890 に答える