【问题标题】:How to get parameters for calibration function in Opencv如何在Opencv中获取校准函数的参数
【发布时间】:2020-02-25 21:54:17
【问题描述】:

我正在使用 Opencv 进行鱼眼相机校准。
我使用棋盘图像找到了对象点和图像点。
下一步是函数
retval, K, D, rvecs, tvecs = cv.fisheye.calibrate(objectPoints, imagePoints, image_size, K, D)

如何得到K(输出3x3浮点相机矩阵)和D(失真系数的输出向量)?据我了解,此函数返回这些参数(KD),但它也要求将其作为参数传递。

【问题讨论】:

  • 看看this question接受的答案
  • 我知道这段代码(它来自 Medium .com)。这段代码有很多奇怪的地方,authour没有给出解释(“你真的不需要知道K和D是什么”)所以我不认为它是一个有效的例子
  • 您会注意到 KD 作为初始化为 0 的矩阵传递。您之前不需要知道它们,但您确实需要为它们传递占位符。请仔细阅读代码。
  • 在 undistort 函数中我应该传递初始化为 0 的矩阵吗?我在代码中看到他们重写了它,即使他们是从 cv.fisheye.calibrate 获得的。

标签: python opencv computer-vision


【解决方案1】:

根据 OpenCV Documentation,如果启用该选项,K 可以用作相机矩阵的可选初始猜测(文档说明如何执行此操作)。看来你不必这样做。失真 (D) 只是一个输出数组。

【讨论】:

  • 所以我们将零数组作为 D 传递?我不了解唯一的输出数组
  • 是的,输出只意味着你可以提供任何你想要的东西,数据不会被使用并且会被覆盖所以只需使用np.zeros((4, 1))
猜你喜欢
  • 1970-01-01
  • 2016-07-06
  • 2020-12-06
  • 2023-04-11
  • 2016-03-25
  • 1970-01-01
  • 1970-01-01
  • 2014-01-03
  • 2012-02-10
相关资源
最近更新 更多