4

最終年度のプロジェクトで虹彩認識を行っています。これで、ハフ円変換を使用して虹彩を検出できましたが、Web カメラを IR Web カメラに変更しても、瞳孔の検出には機能しません。HSV カラーを使用して虹彩の黒色を検出しようとしましたが、まだ機能しません。どのアルゴリズムを参照すればよいですか?

IplImage *capturedImg = cvLoadImage("template.jpg",1);
  IplImage* imgHSV = cvCreateImage(cvGetSize(capturedImg), 8, 3);
cvCvtColor(capturedImg, imgHSV, CV_BGR2HSV);

  IplImage* imgThreshed = cvCreateImage(cvGetSize(capturedImg), 8, 1);
       cvInRangeS(imgHSV, cvScalar(0, 0,0, 0), cvScalar(179, 200, 50,77), imgThreshed);
       cvShowImage("HSV",imgThreshed);

ここに画像の説明を入力

4

1 に答える 1

1

黒を見つけたい場合は、値がゼロに近い場所に存在します。cvInRangeS コマンドを次のように変更できます。

cvInRangeS(imgHSV, cvScalar(0,0,0) , cvScalar(255, 255,27), imgThreshed);

このようにして、ピクセルの値が 27 より大きい場合にピクセルを除外します。色相と彩度の値をいじって、正確に何が最適かを確認することをお勧めします。また、画像の各ピクセルには 3 つのチャネルがあるため、cvInRangeS を使用するときに 4 チャネルのスカラーを使用する意味はないと思います。

とにかく、このコードを自分のコンピューターで実行すると、次の結果になりました。

左の虹彩を正確に分離しない

ブロブ検出を使用して、この画像の左の虹彩を分離できます。このライブラリをチェックアウトすることをお勧めします: http://code.google.com/p/cvblob/

于 2012-12-12T08:02:14.570 に答える