Removing Fish eye effect with no access to the camera

Viewed 693

There are some photos captured by a fish eye camera that I no longer have access to. I am trying to remove the fish eye effect on those photos using opencv, all the solutions I have seen required taking photos of a known sized object (i.e: A chess board) and then calling cv2.calibrate() then it will return the calibration parameters to be used in cv2.undistorted() but this is not applicable. However These attributes were attached with the camera regarding the fish eye effect parameters.

<intrinsic>
        <fisheyeAmt1 format="float" value="308.8805"/>
        <fisheyeAmt2 format="float" value="-14.2861"/>
        <fisheyeAmt3 format="float" value="51.4445"/>
        <fisheyeAmt4 format="float" value="-10.362"/>
        <opt_axis_x_rot_deg format="float" value="0"/>
        <opt_axis_z1_rot_deg format="float" value="0"/>
        <opt_axis_z2_rot_deg format="float" value="0"/>
        <image_flip_x_bool format="bool" value="false"/>
        <image_flip_y_bool format="bool" value="false"/>
        <cam_aspect format="float" value="0.9999"/>
        <source_image_x_res format="float" value="1280.0"/>
        <source_image_y_res format="float" value="806.0"/>
        <cxoffs_pix format="float" value="5.35"/>
        <cyoffs_pix format="float" value="6.477"/>
      </intrinsic>
<extrinsic>
        <rot__x_deg format="float" value="68.46"/>
        <rot_z1_deg format="float" value="-89.34"/>
        <rot_z2_deg format="float" value="0.75"/>
        <pointx_mm format="float" value="4133.0"/>
        <pointy_mm format="float" value="-97.0"/>
        <pointz_mm format="float" value="919.31"/>
      </extrinsic>

My question is, is there anything in these attributes I can use as an alternative to the values returned by cv2.calibrate()?

There is another question here that addresses a similar problem. But I am not sure if the values I have can be used as fx, fy, cx, cy, k1, k2, p1, p2 that are used in the other question.

2 Answers

One solution is to use a GUI for adjusting camera calibration parameters manually! Sample code: camcalib_gui. Another automated solution is to find edges or lines in an image that is supposed to be a straight line but curved because of the fisheye. Draw over these lines and save the points. Then solve the camera parameters as an optimization problem. Can't share this code as I did it at Ignitarium

Related