几个透视变换的矩阵

时间:2012-12-09 20:15:02

标签: opencv geometry transformation perspective

我正在使用OpenCV编写一些图像处理程序。

我需要使用多个透视变换来变换图像。 透视变换由矩阵定义。我知道,我们可以通过简单变换矩阵(旋转,平移等)的乘法得到复杂的仿射变换。 但是当我试图将两个透视变换矩阵相乘时,我没有得到变换矩阵,这对应于所使用的第一和第二矩阵。

那么,我怎样才能得到几个相应的透视变换的矩阵?

1 个答案:

答案 0 :(得分:1)

让你有两个透视矩阵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)

vi =(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