Beier Neely Morphing(视觉计算)

时间:2014-03-30 03:31:40

标签: c++ algorithm math

我目前正在为学校工作,我有点卡住了。我看过的资源在tutorial(页面的后半部分)中,我尝试编码的算法在paper中。由于(我的班级作业被回收)的原因,我不能在这里发布我的代码,所以我将对我所理解的内容进行细分,并希望有人可以指出我理解的问题。如果不是那样的话,那么在可能的情况下,1-1会帮助我看看(经过仔细评论的)C ++。

我给了一个VXL图像,可以通过源和目标的RBG像素值访问,我还给出了一个包含行的结构(由它们的起点和终点坐标引用),另外给出变量a,b和p。

所以我通过目标图像坐标(通过i,j双循环),然后通过线条的内部循环。我按如下方式计算你和v:

  • u = dot_product(XP,QP) / || QP * QP ||

其中XP是目的地的坐标 X(i,j) - P(i,j),该行的起点 和QP是 Q(i,j) - P(i,j)其中Q是该行的终点,并且||表示幅度

  • v = dot_product(perpQP, XP) / || QP ||

其中perpQP = QP(-i,j)

然后使用P'Q'来自源的行,我计算X'

  • X' = P' + u * Q'P' + ( v*perpQ'P'/ || QP || )

其中X'是源图像的坐标,[0,图像的长度/宽度] X'(受图像尺寸和可访问像素限制)

  • weight = ( (|| QP ||)^p / (a + dist) )^b

其中dist由给出(abs(v)如果u在(0,1)中)或(|| XQ ||如果u> 1)或(|| XP ||如果u< 0 )

因此我尝试以两种方式实现它,最终给出相同的东西,因此它们必须是等效的,就像在论文中每个目标像素的X_设置为**X_ = X + DSUM/ weightsum**所以{{} 1}}和**DSUM += D * weight****D = X' - X**(这些是在内循环中计算的),并且为每个目标坐标计算X_

我尝试按照教程的方式实现它,**weightsum += weight**其中**X_ = DSUM/weightsum**和权重与上一个

相同

这项任务将于4月3日到期,是的,这被认为是在大学时提前开始的。第一次在这些板上问一个问题,希望有人可以通过非常深奥的方式对我的头脑解释有点帮助。我在课堂上有足够的内容,我的教授在课堂上侮辱了我的智慧。

0 个答案:

没有答案