5

OpenCV2.3.1とVisualC++で車を検出するプロジェクトがあります。

前景セグメンテーションでは、照明による反射があります。そして、これ(反射)は、背景が削除された後、前景の一部になります。ここに画像の説明を入力してください

このノイズを取り除く方法についての提案やアイデアが必要です。findContoursおよびdrawContours関数を使用する場合に見られるように、一部の前景オブジェクトが1つのオブジェクトとして接続されるためです。添付画像の赤で強調表示されている画像部分を参照してください。これにより、ブロブ検出段階が簡素化されると思います。

*注-OpenCVで組み込みのcvBlobLibを使用することは許可されていません

4

2 に答える 2

4

ここでの問題は、グレアの一部が背景または対応する車のいずれかである可能性があることです。

これが私がすることです。

2値化としきい値処理、または同様の方法でグレア部分を識別することに大きな問題はないと思います。

グレアのすべてのピクセルを識別したら、各グレアピクセルを、画像の同じ行にある最も近い非グレアピクセルに置き換えます。そうすれば、まぶしさは車と背景で満たされます。この方法を使えば、問題なく車を検出することができます。

于 2012-10-11T00:39:35.890 に答える
3

たぶん、画像をHSVに変換してから、高V量をフィルタリングしてみてください

IplImage imgHSV = cvCreateImage(cvGetSize(imgInput), 8, 3);
IplImage imgThreshold = cvCreateImage(cvGetSize(imgHSV), 8, 1);
cvInRangeS(imgHSV, cvScalar(0, 0, 90, 0), cvScalar(0, 0, 100, 0), imgThreshold);

..グレアを取り除くために必要に応じてスカラーを調整します

于 2012-10-11T00:05:13.857 に答える