gpt4 book ai didi

Python围绕相机轴旋转图像

转载 作者:太空狗 更新时间:2023-10-29 20:19:38 26 4
gpt4 key购买 nike

假设我有将单应变换H应用于某些原始图像后获得的图像。原始图像未显示。单应性H应用于原始图像的结果是以下图像:

enter image description here

我想将此图像围绕合适的轴(如果有的话,可能是摄像机的位置)旋转30度,以获取此图像:

enter image description here

如果我不知道相机参数,如何使用python应用此旋转变换?我只能指定要旋转图像的角度和要旋转的近似轴。另外,如何使用H和旋转变换推论原始图像(在单应性之前)和最终旋转的图像之间的单应性H'?

最佳答案

一个有趣的问题。为了帮助解释我的解决方案,我将定义一些符号:

  • I1:原始图像。
  • I2:通过 H 转换I1后的图像。
  • I3:通过3D相机旋转通过变换I2而获得的图像 R (您可以自行设置)。
  • 对应于I2的未知摄像机固有矩阵 K

  • 由于您的相机正在旋转而不平移,因此可以通过使用相应的单应性矩阵扭曲图像来合成任何旋转矩阵 R 的虚拟 View 。因此,您无需尝试以3D方式重建场景即可合成这些 View 。

    现在,我将假设我们有一个 K 的估计,并给出从I1到I3的单应性方程。这回答了您问题的最后一部分。最后,我将提供一种估算 K 的好方法。然后,您便拥有了所需的一切。

    p =(px,py)为I1中的2D点。我们用向量 p =(px,py,1)在齐次坐标中定义此点。同样,让点 q =(qx,qy,1)为点 p 在I3中的位置。将 p 转换为 q 的单应性矩阵 H' H' = K R inv( K K K)给出。对于您指定的任何 R ,您都可以使用它来计算 H',然后可以使I1变形以使用来合成新 View 。 OpenCV的warpPerspective函数。

    派生。我们首先应用 H 来使积分进入I2。接下来,通过inv( K )将点转换为其在3Dcaméra坐标中的位置。然后,我们应用旋转 R ,最后使用 K 投影回到图像上。如果您不确定要像这样应用投影变换,那么我强烈建议您阅读Hartley和Zisserman的著作《多 View 几何》(Multiple View Geometry)来进行深入阅读。

    计算 K 。为此,我提出了使用自由女神像的狡猾策略。具体来说,请注意她正站在一个平台上,我将假设它是正方形的。这是杀手trick俩!现在,我们将使用正方形对相机进行粗略的校准。我将假设没有镜头失真,并且 K 已简化为 K = [f,0,cx; 0,f,cy; 0,0,1]的形式。这意味着长宽比为1(通常在数码相机中通常是这样),并且主点位于图像的中心:cx = w/2和cy = h/2,其中w和h是图像的宽度和高度。图片分别。试图估计镜头畸变和更复杂的 K 矩阵将非常困难。镜头失真似乎并不明显,因为木材的边缘在图像中都大致笔直,因此可以忽略不计。

    所以现在我们要计算f。这将使用基于平面的相机校准来完成。著名的引用文献是《张:相机校准的灵活新技术》,位于https://www.microsoft.com/en-us/research/publication/a-flexible-new-technique-for-camera-calibration/

    此方法的工作方式是,首先在I2中单击雕像平面的四个可见角的4个角(请参见下图)。让我们称这些为p1 p2 p3和p4,从左下开始,顺时针旋转。然后,您可以使用OpenCV的摄像机校准方法从这4个角点获取 K 的估算值。重要的是我们之所以能够做到这一点,是因为我们知道平台是正方形的。为了更深入地了解基于平面的校准,我建议阅读Zhang的论文。如果您遇到困难,我可以在几分钟内自行解决,并发送给 K 矩阵。

    four corner points on the statue's square stand

    最后一点,这种方法的一个细微变化是使用原始图像进行校准(假设您仍然拥有它)。这是因为 H 可能会使I2失真,以使其宽高比不接近1且主点不靠近图像中心。如果您使用原始图像进行校准(我们将其称为矩阵 K1 ),则可以使用 K = H K1

    关于Python围绕相机轴旋转图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47990350/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com