基于任意控制点的图像变形实现
最近看到一个程序实现了如下所示的功能:
如上图所示,本来显示的是一个没有变形的图片,方格也是很规整的。
现在当拖动方格上的控制点的时候(如此图中选中的是两条黄线交叉处的红色控制点点),就可以实现图中所示的变形效果。
控制点为图中的绿色小方块,选择任意一个就可以实现任意的图像变形,需要注意的是每个绿色小方块并不是按照方格的交叉点算的,在设置界面中显示为绿色方块控制点的上、下、左、右点。然后才是下一个绿色小方块。
请教下各位,这种变形怎么实现的?是哪种函数模型?
[解决办法]
在图象上放置一些B样条的控制点,
象素坐标与B样条建立联系,
拖动控制点,就拖动了象素点.
这种方法叫自由形变.
Free Form Deformation.
二维FFD就针对图象.
三维FFD针对图形体.
可以查查FFD的资料,就知道了.
[解决办法]
根据几个控制点与当前点的相对关系,算出偏移坐标,然后从源图双精度插值
控制点的位移与像素的位移算法应该是一样的,只是运算量不同而已