How do I generate distortion coefficients for a generic fisheye lens given its HFOV and VFOV?

Viewed 769

I would like to emulate the optical behavior of a certain camera knowing only the following parameters:

  • it is a fisheye lens
  • focal length in mm
  • sensor size (horizontal and vertical) in mm
  • sensor resolution (horizontal and vertical) in pixels
  • HFOV and VFOV in degrees or radians

My goal is to transform a set of 3D points in space into 2D points on the camera's sensor. It looks like cv2.projectPoints() can do this, but it requires a set of distortion coefficients, K1, K2, P1, P2, etc.

Most people get these coefficients by calibrating using a real camera. I would like to work with a notional camera. One such example is for a GoPro, a person found these values:

[[-2.57614020e-01, 8.77086999e-02, -2.56970803e-04, -5.93390389e-04, -1.52194091e-02]]

I haven't been able to find an explanation of these parameters w.r.t. the input variables I've listed, and I don't understand enough about optics to know how to generate them.

How do I generate the distortion coefficients needed to use projectPoints() for a notional fisheye lens?

0 Answers
Related