关于在video中找到学生

我现在正致力于眼动追踪项目。 在这个项目中,我正在跟踪摄像头video中的眼睛(分辨率为640X480)。

我可以在每一帧中找到并跟踪眼睛,但我需要找到瞳孔。 我阅读了很多论文,其中大部分都提到了Alan Yuille的可变形模板方法来提取和跟踪眼睛特征。 任何人都可以帮助我使用任何语言的代码(matlab / OpenCV)吗?

我尝试过不同的阈值,但由于眼睛区域的分辨率低,它不能很好地工作。 我非常感谢在video中找到瞳孔甚至虹膜的任何帮助。

样本图片

您需要做的是将您的网络摄像头转换为近红外摄像头。 网上有很多教程。 试试这个 。

从近红外凸轮拍摄的图像看起来像这样 –

在此处输入图像描述

您可以使用OpenCV然后使用阈值。

在此处输入图像描述

然后使用Erodefunction。

在此处输入图像描述

在此之后用一些颜色填充图像,将角落作为种子点。

在此处输入图像描述

消除孔并反转图像。

在此处输入图像描述

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

在此处输入图像描述

找到最大值的坐标并绘制一个圆。

在此处输入图像描述

如果您仍在处理此问题,请查看我的OptimEyes项目: https : //github.com/LukeAllen/optimeyes

它使用Python和OpenCV,并且可以很好地处理来自640×480网络摄像头的图像。 您也可以查看该页面上的“理论论文”和演示video。 (这是今年早些时候斯坦福大学的一个class级项目;它不是很精致,但我们试图对代码进行评论。)

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

一些伪代码:

 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 

在Anirudth建议的第一个答案中……
只需在阈值处理function后应用HoughCirlesfunction(第2步)。
然后你可以直接在瞳孔周围绘制圆圈,并使用半径(r)和眼睛中心(x,y),你可以很容易地找到眼睛的中心..