Skip to content

踩坑Robotics Stack Exchange2017-10-19

OpenCV恢复平面图像时透视变换为何无效? ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:OpenCV get topdown view of planar pattern by using intrinsic and extrinsic from cameraCalibrate(Robotics Stack Exchange #14417)

状态:已解决

问题 ​

提问者用calibrateCamera得到内外参后,对畸变透视图B执行undistort和warpPerspective生成C,但结果几乎没有处理透视变换;后续还发现中间图tempImgC可能丢失外侧信息。

环境 ​

Linux / ROS 机器人软件与控制通用开发环境

解决办法 ​

  1. 恢复图像时调用warpPerspective(tempImgC, imgC, matPerspective, Size(2500, 2000), WARP_INVERSE_MAP)。
  2. 为避免undistort中间图丢失外侧信息,先用getOptimalNewCameraMatrix(intrinsic, distCoeffs, Size(2500, 2000), 1)生成newIntrinsic,再传给undistort并用newIntrinsic*transRot3x3计算透视矩阵。
  3. 若逐帧处理需提升效率,可用projectPoints直接生成目标到源图的映射,再对每帧调用remap,避免中间图。

原问题作者:ricecakebear;采纳答案作者:ricecakebear。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。

来源

本页事实对应的公开页面,以原文为准。

  1. Robotics Stack Exchange #14417:OpenCV get topdown view of planar pattern by using intrinsic and extrinsic from cameraCalibrate访问 2026-10-22