通过质心坐标系进行图像变形

https://segmentfault.com/a/11...上一篇文章简单介绍了质心坐标系,这里不再重复。

clipboard.png

标准化坐标:

clipboard.png

满足一下特性的质心坐标,我们就可以构造插值:

clipboard.png

clipboard.png

这样,我们就可以已知的顶点对未知的点进行插值:

clipboard.png

下面结合一种实际应用的例子:
在对一幅图像进行图像变形时,如果我们选定了一个边界(多边形),我们可以对这个多边形进行三角化(即将其分割成若干个三角形,在计算几何中称为Triangulation)。

clipboard.png

然后对每一个三角形计算求得其每个顶点v的重心坐标bi(i=1~N)。
通过bi(i=1~N),我们代入变形后的多边形顶点fi(i=1~N),计算出对应的点F(即为原始三角形的顶点通过插值计算后对应的点),F的像素值应设置为原始的顶点vi的像素。

clipboard.png

对于变形后的三角形(顶点为上一步计算得到的F)内部的点,我们通过https://segmentfault.com/a/11...的方法将变形后的多边形的a,b,c遍历求得内部点target_point_k,然后将a,b,c代入原始的三角形旧的点origin_point_k,点target_point_k的像素就应该为点origin_point_k的像素值。

求重心坐标的几种方法:

clipboard.png

这种变形被称为Cage based image deformation,原始的多边形称为一个 cage,在改变 cage 的形状之后,其内部的点会根据边界的变化做相应的改变。在cage based image deformation中,可以认为内部点的重心坐标在 cage 形状改变的过程中是不发生变化的,这样就可以根据重心坐标建立一个对应关系,从而求得变化后的图像。对每个三角形内部点,并计算出这些点关于三角形三个顶点的重心坐标。在实时拖动的过程中,将当前重心坐标代入原图像中,得到变换的原像(像素点),从而可得到该点所对应的像素值

参考资料:https://zh.wikipedia.org/wiki...
http://www.xuetangx.com/cours...
http://www.inf.usi.ch/faculty...

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值