我需要计算opengl变换矩阵,它将矩形A,B,C,D转换为多边形A',B,C,D(与第一个不同,为1点)。
我怎么能这样做?
答案 0 :(得分:1)
首先,您需要将问题正式化。你有一个矩阵M和4个点,可以转换为另外4个点。
M*A = A'
M*B = B
M*C = C
M*D = D
每一行都可以写成4个方程式。例如:
M11*A1 + M12*A2 + M13*A3 + M14*A4 = A'1
M21*A1 + M22*A2 + M23*A3 + M24*A4 = A'2
...
因此,您可以获得16个线性方程式,可以通过高斯消除法求解。 http://en.wikipedia.org/wiki/Gaussian_elimination
答案 1 :(得分:0)
感谢您的回答。
我实现了你的解决方案,但不幸的是它找到了一个通用的转换矩阵,并不总是仿射转换(我需要)。
我终于使用opencv :: estimateAffine3D http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#estimateaffine3d
解决了我的问题