opencv 関数を使用して接続コンポーネント (またはブロブ) の面積を計算する方法findcontours
とcontourArea
、この投稿が示唆する方法を理解しています。ただし、テスト イメージでは、これら 2 つの関数を使用して最大の連結要素を見つけるのが困難です。私のテスト画像は次のとおりです。
テスト イメージは、明らかに 2 つの接続されたコンポーネントで構成されています。
コンポーネント 1
コンポーネント 2
コンポーネント 2 がコンポーネント 1 よりも大きいことは明らかですが、 を使用するabs(contourArea())
と逆の結果が得られます。何か案は?ありがとう。
編集:この方法を使用して面積を計算すると、正しい結果を得ることができます:
cv::Rect rect = boundingRect(contours[i]);
area = rect.area();