如何使用OpenCV根据相机校准(C ++)生成的真实数据模拟失真?

use*_*883 5 c++ opencv calibration simulate distortion

我正在寻找一种基于C ++的OpenCV创建(桶形)失真的方法,该方法基于通过摄像机校准生成的真实摄像机数据。因此,我的目标是使用opencv模拟真实的镜头失真。为此,我用OpenCV校准了摄像机。我只使用了第一个失真参数k1:x'= x * k1 *r²在这一步中,我得到了一个校准文件,其中k1 = 0.129,即外部和固有摄像机矩阵。

OpenCV提供了一种校准图像的方法。我想“逆转”此方法,可以进行以下测试:原始图像-> undistort()->变形图像->“ distort()”->原始图像

是否可以否定k1因子,或者是否有必要开发新公式?

谢谢。

Xal*_*ale 3

简短的回答,不否定系数是不行的。

但是,您可以测试反转系数,只要系数很小,您就会得到逆变换。该公式没有平凡的逆元,因此该路径可能相当困难。