求算法。要求将1矩形区域图像映射到指定不规则四边形区域

求算法。要求将一矩形区域图像映射到指定不规则四边形区域
本帖最后由 CSDNMicrosoftCSDN 于 2013-06-04 11:08:42 编辑
http://bbs.csdn.net/topics/340208048小生在此贴看到类似算法
@beyond071 的方法用反向映射来解这个问题。
u = (a*x + b*y + c)/(g*x + h*y + 1);  ...(1)
v = (d*x + e*y + f)/(g*x + h*y + 1);  ...(2)

其中(u,v)为目标矩形中的点,(x,y)为源图像四边形中的点,
由矩形和四边形的4个顶点一一对应的关系,建立8个方程,用高斯消元法求解a,b,c,d,e,f,g,h这8个未知数,就可以根据(u,v)反算其在源四边形中的映射点(x,y)了(将(x,y)从式(1)、(2)解出来)。
一般说来(x,y)都落不到整点上,可用四个邻近点做双线性插值。
我这不就是该帖问题的一个逆向么?那么我搞清楚这个问题,我的问题也就是简单鸟?8个方程建立了(如原图四个顶点坐标(0,0)(640,0)(0,480)(640,480)目标图像四顶点坐标(0,0)(640,0)(0,480)(640-DIFFERENCE,480-DIFFERENCE)  (#define DIFFERENCE 30)),用高斯消元法求解a~h8个未知数,解不出来啊,有木有?还请诸位大神帮忙看看还有没有更好的算法或者这个方程组怎么解。跪谢了先~
算法 图形图像 C++

------解决方案--------------------
问题的实现原理一致, 用不同的方法求解,最终的结果必然是一致的
无非是不同的方法下数学公式的复杂度不同,但是简化后一定是相同的 

怎么算都是一个求逆矩阵的过程, 二维四顶点 = 8阶矩阵



------解决方案--------------------
很久以前的帖子了,不知道有没有帮助
http://blog.csdn.net/beyond071/article/details/5837723
------解决方案--------------------
其实这套映射方案是用来解决 任意四边形 -> 任意四边形 的映射的。

你现在的问题就是要做8个方程求解8个未知数的工作。

可以借鉴《常用算法程序集(C语言描述) (第三版)》的6.1节程序,网上应该能找到。
上面有源码和使用例子,直接用即可~