OpenCV を使用して背景 (緑色のフィールドと薄緑色のタオル) をオブジェクトから分離しようとしているので、次の画像を手動でセグメント化しました。
画像の右下にあるように、オブジェクトを赤で縁取り、考慮すべきではない接続されたコンポーネントを青で色付けすることにより、次のようになります。
254 のチャネル R と B でしきい値を設定した後、次の結果が得られました。
- チャンネルレッド
を使用して赤チャネルのすべての輪郭を満たす場合
findContours( bordersRed, contoursRedChannel, hierarchyRedChannel, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0) );
for (int index = 0; index < contoursRedChannel.size(); index ++)
{
drawContours( bordersRed, contoursRedChannel, index, colorForMask, CV_FILLED, 8, hierarchyRedChannel, 0, cv::Point() );
}
右下隅は次のようになります。
しかし、次のようなものにするために、青い点のみを含む輪郭を無視する必要があります。
そのため、赤と青のチャンネルを組み合わせて取得する必要がありますが、まだ方法がわかりません。アドバイスをいただければ幸いです。
ありがとう。