三角形变换的高效算法 本帖最后由 jiangsheng 于 2010-10-15 00:20:01 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考一下这个如何将一个矩形图像变形为一个梯形( 或者说是任意四边形)http://topic.csdn.net/u/20071015/18/0b280829-2047-4dd3-91ef-20776f8c7446.html 算法基本思路一、网格的生成将源图像和目标图像通过建立特征点,形成点集,然后通过三角剖分的方法形成三角形网络。其中涉及到的问题有: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值,并将他们写入中间帧缓存中,最终生成中间帧图像。 相当于从一个图像中的一个指定位置性质的区域复制到另一个图像中指定位置区域吧,看看OpenCV吧,里面有一些类似的函数可以实现 我弄了个播放音频的按钮,不停的点击不停的播放,我想点击一次后再若干秒内点击后不在运行播放音频的程序,改怎么写? mfc 单文档菜单使用 如何利用VC进行硬盘直接扇道的读写 窗口中的状态栏是在何处定义的? 关于cstring与unicode的问题? 我对多媒体不是很熟 请教!何为SNMP的“协议无关性” 我想读到pc机的硬件信息来给我的软件加密,如何办? 为什么我程序中AfxGetInstanceHandle()无法使用? 用VC多久才能算VC高手??? 求助:自定义的webbrower浏览器中自动激活Activex控件 DOS程序的闪屏问题
如何将一个矩形图像变形为一个梯形( 或者说是任意四边形)
http://topic.csdn.net/u/20071015/18/0b280829-2047-4dd3-91ef-20776f8c7446.html
将源图像和目标图像通过建立特征点,形成点集,然后通过三角剖分的方法形成三角形网络。
其中涉及到的问题有:
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值,并将他们写入中间帧缓存中,最终生成中间帧图像。