私は目の虹彩領域を検出しようとしており、その後、検出された領域の周りに円を描きます。しきい値関数を使用して、瞳孔、上まぶたのライン、眉毛だけを含む鮮明な白黒の目の画像を取得することができました。
これが達成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 カメラから直接取得されることに注意してください。