OpenCV で Matlabs の「 Bwareaopen 」関数と同様または同等の関数を見つけようとしていますか?
MatLabでは、Bwareaopen(image,P)はバイナリ イメージから、P ピクセルよりも少ないすべての連結要素 (オブジェクト) を削除します。
私の 1 チャンネルの画像で、大きな領域の一部ではない小さな領域を単純に削除したいですか? これを解決する簡単な方法はありますか?
cvBlobsLibを見てください。必要な機能があります。実際、そのリンクの最初のページにあるコード例は、まさにあなたが望んでいることだと思います。基本的に、 を使用CBlobResult
して、バイナリ イメージに対して連結成分のラベル付けを実行し、次に呼び出しFilter
て基準に従ってブロブを除外できます。
そのような機能はありませんが、次のことができます。 1) 輪郭を見つける 2) 輪郭領域を見つける 3) すべての外部輪郭をしきい値よりも小さい領域でフィルタリングする 4) 新しい黒い画像を作成する 5) その上に左の輪郭を描く 6) オリジナルでマスクする画像