プロジェクトのバイナリ イメージで最大の BLOB を検出したいと考えています。どうすればこれを行うことができますか?
ありがとう
findContours
画像内のすべてのブロブを見つけるために使用し、contourArea
ブロブの面積を計算できます。したがって、最大の面積を持つ輪郭(ブロブ)を見つけてください。
良い出発点はCVBloblibです。過去に使用しましたが、問題なく動作します。
次に、必要に応じて、ブロブの面積または周囲を計算するだけの問題です:)
ここでのベストプラクティスはわかりませんが、次のようにします。
次に、すべてのブロブをベクターに保存します。ベクトルをブロブの面積で並べ替えます。そして、最後のブロブを取得します。
bool sortBlobsASC(CBlob first, CBlob second) { return first.Area() < second.Area(); }
std::sort(myvec.begin(), myvec.end(), sortBlobsASC);