我曾经使用一台鱼眼相机拍摄了一些照片,但现在无法再访问这些照片。我想使用opencv消除这些照片上的鱼眼效果,但我看到的所有解决方案都需要拍摄一个已知大小的物体(例如:国际象棋棋盘),然后调用cv2.calibrate()函数,它将返回可用于cv2.undistorted()函数的校准参数。然而,这种方法并不适用于我的情况。不过,这些关于鱼眼效果参数的属性已经与相机绑定在一起。
<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>
我的问题是,这些属性中是否有任何东西可以用作cv2.calibrate()返回值的替代品?
这里还有一个相关问题(链接),但我不确定我拥有的值是否可以用作另一个问题中使用的fx、fy、cx、cy、k1、k2、p1、p2。