鱼眼镜头拍摄的一些照片让我无法访问。我试图使用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()返回的值的替代吗?
还有另一个问题here解决了类似的问题。 但我不确定我的值是否可以用作另一个问题中使用的fx,fy,cx,cy,k1,k2,p1,p2。
答案 0 :(得分:0)
如果您的图像包含已知的纹理平面,则可以执行另一次校准。
这些属性来自哪里?他们的一些名字不是标准的。 你有关于提到焦点的图像的EXIF信息吗?
你能给出与名字相关的价值吗?这可能有助于猜测。
如果你有关于视野的信息,它可以帮助fx,fy