我正在用OpenCV写一些图像处理程序。
我需要使用几个透视变换来变换图像。透视变换由矩阵定义。我知道,我们可以通过将简单的变换矩阵сes(旋转、平移等)相乘得到复杂的仿射变换。但是当我尝试将两个透视变换矩阵相乘时,我没有得到对应于随后使用的第一个和第二个矩阵的变换矩阵。
那么,我如何获得几个后续透视变换的矩阵呢?
发布于 2012-12-10 08:07:32
假设你有两个透视矩阵C:(x,y)->(u,v)和D:(u,v)->(r,g):
你试着得到M:(x,y)->(r,g)
您应该将(1)、(2)中的ui和vi替换为等式(3)、(4)。
ui= (c00*xi + c01*yi + c02) / (c20*xi + c21*yi + c22) (1)
C22= (c10*xi + c11*yi + c12) / (c20*xi + c21*yi + c22) (2)
*ri= (d00*ui + d01*vi + d02) / (d20*ui + d21*vi + d22) (3)
*gi= (d10*ui + d11*vi + d12) / (d20*ui + d21*vi + d22) (4)
之后你可以看到M= D*C
https://stackoverflow.com/questions/13791353
复制相似问题