gpt4 book ai didi

algorithm - cv::undistortPoints() - 迭代算法解释

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:03:02 25 4
gpt4 key购买 nike

我试图理解 OpenCV 的 cv::undisortPoints() 迭代逼近算法背后的逻辑。

实现可在以下位置获得: https://github.com/Itseez/opencv/blob/master/modules/imgproc/src/undistort.cpp (第 361-368 行)。

我的看法:

  • 使用上次最佳猜测的像素位置 (x, y),尝试通过应用“当前最佳猜测失真”的反函数来找到更好的猜测,并根据初始失真位置 (x0, y0) 调整像素位置
  • 使用初始扭曲位置 (x0, y0) 作为第一个“最佳猜测”

但是上面并没有真正说明为什么这可以做到...

其中一位用户发帖(此处:Understanding of openCV undistortion)这是一种“非线性求解算法(例如牛顿法、Levenberg-Marquardt 算法等)”。从我所看到的情况来看,至少有几种可能的解决方案可以解决这种不失真的问题。


问题:

  • 在 cv::undistortPoints() 中究竟实现了什么迭代算法?
    • 是否有任何白皮书显示(以及 [更重要的] 解释“就像我五岁”)其背后的想法?
  • 我们怎么知道这个算法会收敛(至少收敛到局部最小值)?
  • 为什么要对初始位置 (x0, y0) 进行校正?

最佳答案

它使用 false position (“regula falsi”)方法。无论失真参数的选择如何(甚至“物理上合理”参数的每种选择),我都没有看到序列收敛于这个特定方程的证据。为一些特殊情况编写一个非常容易,例如物理纯二阶桶形失真。

在实践中它似乎运作良好。如果您对此感到不舒服,可以随时替换为您选择的方程式求解器。对于任何阶数的纯径向畸变(即具有单个未知数),您可以使用任何多项式方程求解器,例如好老 SLATEC 的 rpqr79 .

关于algorithm - cv::undistortPoints() - 迭代算法解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31184972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com