虚拟PTZ摄像机通过物理鱼眼摄像机和Open CV

时间:2018-04-11 08:46:47

标签: c++ opencv projection ip-camera fisheye

我试图根据物理鱼眼摄像机(180度FOV)的数据实现虚拟Pan-Tilt-Zoom(PTZ)摄像机。

在我看来,我必须意识到下一个序列。

  1. 在鱼眼传感器矩阵的坐标中获取鱼眼圆心的坐标。
  2. 在同一坐标系中获取鱼眼圆的半径。
  3. 生成球面方程,其中心和半径与平面相机传感器上的平面鱼眼图像相同。
  4. 投影从平面图像到上半球的所有彩色点。
  5. 在X Y平面和X Z平面中选择角度来描述虚拟PTZ的视图方向。
  6. 选择视角,并在虚拟PTZ视图矢量周围用圆圈标记,该矢量将绘制在半球表面上。
  7. 生成平面方程,该方程与半球的交点将是围绕视图方向的圆。
  8. 使用从半球边缘到半球中心的方向投影,将所有彩色点从圆圈移动到围绕视线方向的圆平面。
  9. 使用插值(在cv :: remap中实现)绘制投影圆内所有未上漆的点。
  10. 在我看来,最重要的一步是将彩色点从平面图像上升到三维半球。

    我的问题是: 根据半球方程将Z坐标设置为平面图像的所有彩色点,将点从图像平面上升到半球表面是否正确?

    Initial image from fisheye camera

    enter image description here

    fisheye image after projection to hemisphere

    Virtual PTZ with coordinates

    Projection plane and view angle of virtual PTZ

    Desirable result

0 个答案:

没有答案