2

私は目の虹彩領域を検出しようとしており、その後、検出された領域の周りに円を描きます。しきい値関数を使用して、瞳孔、上まぶたのライン、眉毛だけを含む鮮明な白黒の目の画像を取得することができました。

これが達成HoughCirclesされると、画像に円が表示されているかどうかを検出するために適用されます。ただし、円形領域は検出されません。を読んだ後HoughCircles、それは次のように述べています

ハフ勾配法は次のように機能します。

最初に、画像をエッジ検出段階 (この場合は ) に通す必要がありますcvCanny()

次に、しきい値関数の後にキャニー検出器を追加しました。これでも円は検出されませんでした。しきい値関数を削除すると、目の画像が不要な線でいっぱいになります。したがって、私はそれを含めました。

cv::equalizeHist(gray, img);
medianBlur(img, img, 1);

IplImage img1 = img;
cvAddS(&img1, cvScalar(70,70,70), &img1);
//converting IplImage to cv::Mat  
Mat imgg = cvarrToMat(&img1);

medianBlur(imgg, imgg, 1);
cv::threshold(imgg, imgg, 120, 255, CV_THRESH_BINARY);
cv::Canny(img, img, 0, 20);

medianBlur(imgg, imgg, 1);

vector<Vec3f> circles;
/// Apply the Hough Transform to find the circles
HoughCircles(imgg, circles, CV_HOUGH_GRADIENT, 1, imgg.rows/8, 100, 30, 1, 5);
  • どうすればこの問題を克服できますか?
  • ハフサークル法はうまくいくでしょうか?
  • 虹彩領域を検出するためのより良い解決策はありますか?
  • 選択したパラメータは正しいですか?

また、画像は Web カメラから直接取得されることに注意してください。

4

2 に答える 2

0

バイナリの目の画像には、まつ毛、目、眉毛の 3 つの異なる側面が含まれていました。主な目的は、眉毛とまつげを除く目/虹彩である関心領域に到達することです。次の手順に従いました。

ステップ 1: 目の画像の上半分を破棄します。したがって、まつげ、目の領域、および小さな影の領域が残ります。

ステップ 2:輪郭を見つける

ステップ 3: 目の領域だけになるように最大の輪郭を見つける

ステップ 4: 境界ボックスを使用して目の周りに長方形を作成します http://docs.opencv.org/doc/tutorials/imgproc/shapeescriptors/bounding_rects_circles/bounding_rects_circles.html

これで関心領域ができました。この時点から、これらの画像を正確に処理し、ニューラル ネットワークを使用してシステムをトレーニングし、マウスの特性をエミュレートします。現在、ニューラル ネットワーク link1と、それを opencv で使用する方法について学習しています。

虹彩ポイントの検出、目のベクトルの作成、それを追跡し、画面上のかすめを計算することを含む以前の方法を使用すると、時間がかかります。また、虹彩に反射する光があり、検出が困難になります。

于 2013-08-13T18:26:45.947 に答える
0

Daugman の Integro 微分演算子を使用してみてください。虹彩と瞳孔の中心を計算し、虹彩と瞳孔の境界に正確な円を描きます。MATLAB コードは、ドーグマン法を使用した虹彩境界検出で利用できます。私はOpenCVに慣れていないので、変換できます。

于 2013-08-02T07:55:00.583 に答える