获取当前特征点法线方向两侧点的纹理模型

本文介绍了在ASM(Active Shape Model)人脸面部特征定位中,如何通过不同算法计算特征点法线方向上的抽样点坐标来获取局部纹理信息。讨论了数值微分法、中点画线法及Bresenham画线方法,并对比了正确与错误的计算方法。
 

在基于ASM人脸面部特征定位中,要获取当前特征点法线方向两侧点的纹理模型,计算抽样点坐标方法如下:

1. 涉及到的图形学知识:

画直线的方法:数值微分法,中点画线法,Bresenham画线方法

2. 注意问题

1)在求解特征点法线方向的N个抽样点的局部纹理信息时,抽样点坐标的计算可以按照以上提到的三种方法中的一种(具体介绍见图形学方面的书籍)。

2)数值微分法涉及到浮点数,不利于硬件的实现,可以考虑用图形学领域应用最广泛的Bresenham直线扫描转换算法。

3. 求解法线方法

       1)错误方法:先根据当前特征点前后两个特征点求过该特征点的法线,然后取x++,求处y坐标,然后将(xy)作为抽样点的坐标。

       错误原因:当法线斜率k < 1时该方法求出的坐标误差不是很明显,但当k >>1时,那么当x += 1时,y的增量可能会很大可能造成两个取样点之间的距离很大,甚至抽样点的坐标会超出图像的范围。因此这种方法思路上是错误的,没有考虑到斜率的各种情况对抽样点选择的影响。

       2)正确方法:

       鉴于错误方法的思想,可以考虑到利用计算机最基本的绘制像素宽度直线的算法,这样可以解决抽样点选择问题。方法很多种,基本思想都是基于以上三种算法。

4. 用数值微分法(硬件上考虑其他算法)

y(i+1) =k * x(i+1) + b

        = k * (x(i) + △x) + b

        = k * x(i) + k * △x + b

     = y(i) + k * △x

 

当△x = 1时,有y(i+1) = y(i) + k,即x每增1时,y递增k(斜率)

注意问题:

以上是当|k| <= 1时成立,即x++, y += k;当|k| > 1时,xy的地位要交换,即y++

x += (1/k)

 

转载于:https://www.cnblogs.com/lihongsheng0217/archive/2009/04/01/1427613.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值