Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 关于在视频中查找学生_C_Matlab_Opencv_Eye Tracking_Iris Recognition - Fatal编程技术网

C 关于在视频中查找学生

C 关于在视频中查找学生,c,matlab,opencv,eye-tracking,iris-recognition,C,Matlab,Opencv,Eye Tracking,Iris Recognition,我现在正在做一个眼球追踪项目。在这个项目中,我在网络摄像头视频中跟踪眼睛(分辨率为640X480) 我可以在每一帧中定位和跟踪眼睛,但我需要定位瞳孔。我读了很多论文,其中大部分都参考了Alan Yuille的变形模板方法来提取和跟踪眼睛特征。有人能帮我用任何语言(matlab/OpenCV)编写这个方法的代码吗 我尝试了不同的阈值,但由于眼睛区域的分辨率较低,所以效果不太好。我将非常感谢任何关于在视频中找到瞳孔甚至虹膜的帮助 根据跟踪瞳孔的应用程序,我会找到眼睛的边界框,然后在该框中找到最暗的像

我现在正在做一个眼球追踪项目。在这个项目中,我在网络摄像头视频中跟踪眼睛(分辨率为640X480)

我可以在每一帧中定位和跟踪眼睛,但我需要定位瞳孔。我读了很多论文,其中大部分都参考了Alan Yuille的变形模板方法来提取和跟踪眼睛特征。有人能帮我用任何语言(matlab/OpenCV)编写这个方法的代码吗

我尝试了不同的阈值,但由于眼睛区域的分辨率较低,所以效果不太好。我将非常感谢任何关于在视频中找到瞳孔甚至虹膜的帮助


根据跟踪瞳孔的应用程序,我会找到眼睛的边界框,然后在该框中找到最暗的像素

一些伪代码:

box left_location = findlefteye()
box right_location = findrighteye()
image_matrix left = image[left_location]
image_matrix right = image[right_location]
image_matrix average = left + right
pixel min = min(average)
pixel left_pupil = left_location.corner + min
pixel right_pupil = right_location.corner + min

你需要做的是将你的网络摄像头转换成近红外摄像头。网上有很多这方面的教程

从NIR摄像机拍摄的图像看起来像这样-

然后可以使用OpenCV设置阈值

然后使用腐蚀功能

在此之后,以一个角作为种子点,用某种颜色填充图像

消除孔并反转图像

使用距离变换到最近的非零值

找到最大值的坐标并画一个圆


如果您仍在进行此项工作,请查看我的Optimees项目:


它将Python与OpenCV结合使用,并且可以很好地处理来自640x480网络摄像头的图像。你也可以在该页面上查看“理论论文”和演示视频。(今年早些时候,这是斯坦福大学的一个课堂项目;虽然不是很完美,但我们尝试对代码进行了一些注释。)

在Anirudth建议的第一个答案中…
在阈值化功能(第2步)之后,只需应用HoughCirles功能即可。

然后你可以直接画出瞳孔周围的圆,使用半径(r)和眼心(x,y),你可以很容易地找到眼心。

我认为用这种分辨率会很困难。你能在imageshack.us上传一张截图并在这里提供链接吗?我不知道如何附加图片。你能帮我吗…你还不能帮我,因为你在这个网站上没有足够的声誉。谢谢Tibor,我以前也试过上传,但失败了:(转到
http://imageshack.us/
。你可以在那里上传图像。然后在这里提供图像的链接。我尝试使用最暗的像素。但这一个的问题是,有时光线反射到虹膜上,然后瞳孔不再是最暗的点。我不知道如何解决这个问题。所以它有时是最亮的,有时是最暗的最暗?你可以使用梯度的绝对值或通过简单地找到
max(abs(eye\u image-mean(eye\u image)))来找到最极端的点。
Hi vaebnkehn,我昨天尝试了这种方法,但没有成功(也许如果你发布一些眼睛的示例图像会有所帮助。我唯一的另一个想法是尝试找到彩色像素环,即虹膜,其中心应该是瞳孔。我会在HSV空间中查看饱和度通道以找到虹膜。找到眼睛区域中的所有白色像素。标记区域并保持不变。)最大的两个(分别是左右眼白)。找到每个regon的质心,然后取两个质心的平均值。该点应该是瞳孔。嗨,Anirudh,谢谢你的回答。问题是我不能使用任何红外摄像机或任何其他修改版本的网络摄像机。只需要使用一个简单的网络摄像机。无论如何,非常感谢。一个普通的网络摄像机可以很容易地转换为NIRy、 请参阅上述答案中的链接。