2012-05-07 7 views
0

どうすればblobをopencvでソートできますか?私はすべての塊が画像の上に散らばっている。私はそれが最初の小滴になるのが右下になりたい。 2番目のブロブは、1番目のブロブから最後のブロブの左上まで左下になります。私はそれに対処する方法についていくつかの提案が必要です。ありがとうございました。opencvでブロブをソートする

答えて

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); 

    // ... 
} 
+0

あなたはそれが実際に何をもっと説明することができますか? – Mzk

+0

iiro。ブロブベクトルには何もありません。検出されたBLOBをブロブベクトルに渡すにはどうすればよいですか? – Mzk

+0

今私の例を強化しました。私が何を言おうとしているのか理解してもらいたい。 – iiro

0

OpenCVでcvBlobsLibを使用していますか?各検出されたBLOBの 、あなたは

CvRect rect = blob->GetBoundingBox(); 

によって、その域を得ることができます。そして、あなたはrect.x.に従ってブロブの全てをソートすることができます

+0

はい。私はcvBlobsLibを使用しています。あなたがlibsを使っているかどうか分かります。それは左または右のいずれかの上からブロブをソートします。それは下方に移動する。その代わりに、私はそれが以前に説明した方法であることを望んでいます。私はあなたの答えに応じてどのように分類できますか? – Mzk