しきい値処理後にキャニーで処理されるカラーしきい値バイナリ画像で輪郭を検索する小さなプログラムを作成しましたが、どういうわけか、画像内のすべてのオブジェクトに対して常に2つの輪郭を見つけます。
検出された等高線が描かれている右下の画像では、2 つの等高線の間に少しオフセットがあり、最大の等高線が 2 回描画されていることがわかります。次の画像は、この画像の詳細ビューを示しています。
http://img831.imageshack.us/img831/3641/doubleframe2.png
ここでは、最大の等高線だけが 2 回描画されますが、等高線の 1 つおきにランダムに描画されます。オブジェクトごとに輪郭が 1 つだけ欲しいのですが、どうすればそれを実現できますか? :/
更新:
findContours メソッドによって埋められる輪郭ベクトルのサイズは 8 で、サイズは 4 にすべきです。
更新 2:これ
は kinect からの RGB 入力画像です
。
cv::cvtColor(in, out, CV_BGR2HSV);
cv::inRange(out,
cv::Scalar(25, 131, 97),
cv::Scalar(35, 220, 217),
out);
その後、サイズ 1 の rect 要素を使用した浸食 + 膨張が続きます。