我想了解OpenCV的cv :: undisortPoints()迭代近似算法背後的邏輯。OpenCV - cv :: undistortPoints() - 迭代算法解釋
實現可在: 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算法等)」,並從我所看到的有這類undistorting問題,至少有幾個可能的解決方案
問題:
- 什麼迭代算法正是在CV :: undistortPoints()來實現?
- 有沒有表現出任何白皮書(和[什麼是更重要的是解釋「就像我五」),它背後的想法?
- 我們怎麼知道這個算法會收斂(至少到局部最小值)呢?
- 爲什麼我們要對初始位置(x0,y0)進行修正?