如何用霍夫变换定位瞳孔中心?

monechenchen 2009-05-23 09:47:54
我是想如何用霍夫变换找到眼睛的中心,前提是眼睛区域已经框出,如何能应用霍夫变换找到瞳孔的中心,我以前没有接触过这方面的知识,所以请大家赐教,谢谢。
...全文
412 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chiwa737 2009-05-27
  • 打赏
  • 举报
回复
如果你不需要实时的性能, 我有个办法, 通过调用随机函数

有3个变量 r, x, y 就是 圆半径, 圆心位置

1. 对这3个变量取随机 得到一个圆
2. 计算你已经框出的眼睛区域和这个圆的差别 delta

3. 继续找随机,重复1,2步 n 次,
4. 查找最好的r,x,y, 并对应缩小随机范围, 重复1,2,3步, 如delta不再变化, 那3个变量就是你要找的圆了
huabeiyg811 2009-05-26
  • 打赏
  • 举报
回复
Hough变换的圆检测。网上google。
zhangyan_wt 2009-05-23
  • 打赏
  • 举报
回复
图像上瞳孔是什么样子的,如果是一个黑球的话,可以这样处理:

1. 先对图像做些处理,找个算子取梯度图像,就是提取边缘,然后做二值化,将一个实心的黑圆变成一个空心的黑圆。
2. 是广义Hough变换,
圆的方程(x-x0)^2+(y-y0)^2 = r^2
以合适的定义域,开一个3维数组计数器,(x0,y0,r),里面所有元素都赋成0;
对图像上的每一个黑点(x,y)在3维空间(x0,y0,r)里过一遍,对3维数组里的每一个元素,也就是每一种(x0,y0,r)的组合,计算上述方程的误差,dist = sqrt((x-x0)^2+(y-y0)^2) - r, 当这个误差dist小于一定值的时候(比如2),就把3维数组里对应的元素++;
都做完以后,找到3维数组里最大的元素(x0,y0,r)就是我们要的圆,圆心就是(x0,y0)
arong1234 2009-05-23
  • 打赏
  • 举报
回复
我记得hough只用于找直线
ljz888666555 2009-05-23
  • 打赏
  • 举报
回复
不懂.UP
xsc2001 2009-05-23
  • 打赏
  • 举报
回复
这个问题霍夫变换不一定就能实现你的功能,所以还得根据你图象的特点来确定,霍夫变换是从图像中识别几何形状的基本方法之一,要实现你的功能就得进行很多改进。可以根据你图象的特点自己写一个模式识别的模型,再结合霍夫变换就可以得到较理想的结果。

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧