我正在使用OpenCV编写一些图像处理程序。
我需要使用多个透视变换来变换图像。 透视变换由矩阵定义。我知道,我们可以通过简单变换矩阵(旋转,平移等)的乘法得到复杂的仿射变换。 但是当我试图将两个透视变换矩阵相乘时,我没有得到变换矩阵,这对应于所使用的第一和第二矩阵。
那么,我怎样才能得到几个相应的透视变换的矩阵?
答案 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