【问题标题】:Fisheye-Equirectangular conversionFisheye-Equirectangular 转换
【发布时间】:2020-06-25 08:30:36
【问题描述】:

我有一个通过 OpenCV 的 fisheye::calibrate() 获得的鱼眼相机的内在参数(fx,fy, cx,cy, k1~k4)。如何将鱼眼图像转换为 equirectangular 图像?

我见过一些类似的问题,但似乎都没有反映校准结果。这个转换不需要失真参数k1~k4吗?

【问题讨论】:

  • 您使用的是 Python 绑定还是 C++?
  • 目前使用c++

标签: computer-vision fisheye


【解决方案1】:

This Medium article,而在 Python 中可能会提供有关该主题的进一步阅读。这似乎表明,一旦您从 fisheye::calibrate 获得了 K 和 D 值,您就可以使用 fisheye::initUndistortRectifyMap (注意 D 可以是空的,就像您的情况一样)生成两个地图,可以然后与remap 一起使用,将扭曲的输入图像转换为去扭曲的输出图像(进一步阅读重新映射here)。

在 python 中(对于稍后查看此内容的任何人),这是这样完成的:

ap1, map2 = cv2.fisheye.initUndistortRectifyMap(K, D, np.eye(3),
                                                K, DIM, cv2.CV_16SC2)
undistorted_img = cv2.remap(img, map1, map2,
                            interpolation=cv2.INTER_LINEAR, 
                            borderMode=cv2.BORDER_CONSTANT)

【讨论】:

  • 我目前没有时间附加 C++ 示例,但我希望这有助于您走上正确的道路。
  • 我参考了this page 以获得不失真的图像,步骤包括您所建议的。但显然这不是一个等距矩形图像。
  • 啊,我的错。我误解了你的问题。
猜你喜欢
  • 1970-01-01
  • 2016-03-18
  • 1970-01-01
  • 2016-12-21
  • 2022-07-18
  • 2016-05-05
  • 1970-01-01
  • 1970-01-01
  • 2019-01-22
相关资源
最近更新 更多