使用opencv和python更改相机“看”的图像的哪个部分(透视变换)

时间:2018-10-02 19:16:55

标签: python opencv camera homography perspectivecamera

我希望能够选择图像中的任意像素,并对图像进行扭曲以创建图像的合成视图,这样:

  • 相机似乎正沿着主轴(即正交于图像传感器的平面)直视所选像素。现在,选定的像素是图像(http://ksimek.github.io/2013/08/13/intrinsic/)的“主要点”。

  • 仅在固定摄像机围绕其焦点旋转的情况下变换图像的透视图。变换基于旧主轴和新“合成”主轴之间的旋转。

该应用程序是在较大图像中放大感兴趣的区域-并创建一个合成视图,使其看起来好像相机直接看着roi。

使用带有校准镜头的相机捕获图像(即,使用opencv校准相机镜头,因此固有相机矩阵K是已知的)。假设图像/镜头没有扭曲。

由于我们从相机矩阵知道相机的焦距(以像素为单位),并且知道原始和合成主点之间的差异(以像素为单位),因此似乎有足够的信息来计算单应变换以生成合成图像。

但是,我找不到执行此操作的opencv或其他python函数。我想我可以计算旋转的欧拉角,并根据固有的相机矩阵和旋转矩阵构建单应性。我不清楚该怎么做,我想知道是否有更优雅的方法。

任何人都可以提供有关如何使用透视变形来使用opencv / python更改图像的主要点的指导吗?

0 个答案:

没有答案