gpt4 book ai didi

java - 关于在java opencv中使用霍夫圆检测虹膜和瞳孔圆

转载 作者:太空宇宙 更新时间:2023-11-03 23:19:12 25 4
gpt4 key购买 nike

我在 Java 中使用 opencv 尝试用眼睛检测图像中的圆圈(虹膜和瞳孔),但我没有得到预期的结果。

这是我的代码

// convert source image to gray
org.opencv.imgproc.Imgproc.cvtColor(mRgba, imgCny, Imgproc.COLOR_BGR2GRAY);
//fliter

org.opencv.imgproc.Imgproc.blur(imgCny, imgCny, new Size(3, 3));
//apply canny

org.opencv.imgproc.Imgproc.Canny(imgCny, imgCny, 10, 30);
//apply Hough circle

Mat circles = new Mat();
Point pt;

org.opencv.imgproc.Imgproc.HoughCircles(imgCny, circles, Imgproc.CV_HOUGH_GRADIENT, imgCny.rows() / 4, 2, 200, 100, 0, 0);
//draw the found circles
for (int i = 0; i < circles.cols(); i++) {
double vCircle[] = circles.get(0, i);

pt = new Point((int) Math.round((vCircle[0])), (int) Math.round((vCircle[1])));

int radius = (int) Math.round(vCircle[2]);
Core.circle(mRgba, pt, radius, new Scalar(0, 0, 255), 3);
}

the original image

canny result

不知道是什么问题。是found circle函数的参数有问题,还是其他的。

有没有人遇到过这样的问题或者知道如何解决它?

最佳答案

Hough 变换不可能在这个精明的结果中检测到您想要的圆!边缘太多了。您必须先清理图像。

从黑色(瞳孔、虹膜内部)和白色检测开始。这两个区域将界定投资返回率。

此外,我还会尝试执行皮肤检测(HSV 颜色空间的简单阈值。它将消除 90% 的研究区域。

关于java - 关于在java opencv中使用霍夫圆检测虹膜和瞳孔圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33584262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com