本帖最后由 jiangsheng 于 2010-10-15 00:20:01 编辑

解决方案 »

  1.   

    参考一下这个
    如何将一个矩形图像变形为一个梯形( 或者说是任意四边形)
    http://topic.csdn.net/u/20071015/18/0b280829-2047-4dd3-91ef-20776f8c7446.html
      

  2.   

    算法基本思路一、网格的生成
    将源图像和目标图像通过建立特征点,形成点集,然后通过三角剖分的方法形成三角形网络。
    其中涉及到的问题有:
    1) 怎样把源图像中形成的三角形和目标图像生成的三角形(三角形对)对应起来。(对整体的源图像和目标图像来说,他们划分出网格之后,应该是同构的。)
    2) 通过源三角形和目标三角形的顶点坐标值,使用仿射变换求出变换从源三角形到目标三角形的变换矩阵T。二、中间帧生成对其中一个三角形对来说,中间帧的生成过程是这样的:
    1)        通过变换矩阵T,求得三角形对的对应像素点坐标。
    2)        定位源三角形内部像素点P0的RGB值,经过线型插值运算:Pinternal=(1-1/n)P0+(1/n)P1(Pinternal是中间帧像素点RGB值,P1是目标像素点RGB值,n为变形动画的帧数)获得中间帧中点Pinternal的RGB值。
    通过以上方法,求得其余三角形的中间帧点Pinternal的RGB值,并将他们写入中间帧缓存中,最终生成中间帧图像。
      

  3.   

    相当于从一个图像中的一个指定位置性质的区域复制到另一个图像中指定位置区域吧,看看OpenCV吧,里面有一些类似的函数可以实现