如何根据相机校准(C++)生成的真实数据使用opencv模拟失真?
Posted
技术标签:
【中文标题】如何根据相机校准(C++)生成的真实数据使用opencv模拟失真?【英文标题】:How to simulate distortion with opencv based on real data, generated by camera calibration (C++)? 【发布时间】:2013-05-23 14:56:49 【问题描述】:我正在寻找一种在 C++ 中使用 OpenCV 创建(桶形)失真的方法,该方法基于相机校准生成的真实相机数据。 所以我的目标是用opencv模拟真实的镜头畸变。 因此我用 OpenCV 校准了一个相机。我只使用了第一个失真参数 k1:x' = x * k1*r² 通过这一步,我得到了一个 k1 = 0.129 的校准文件,即外在和内在的相机矩阵。
OpenCV 提供了一种校准图像的方法。而且我想“反转”这种方法,可以进行以下测试: 原图 -> undistort() -> 不失真图像 -> "distort()" -> 原图
是否可以否定k1因子或者是否有必要开发一个新的公式?
谢谢。
【问题讨论】:
【参考方案1】:简短的回答,没有否定系数不会这样做。
但是,您可以测试反转系数,只要系数很小,您就会得到一个逆转换。该公式没有微不足道的逆,因此路径可能相当困难。
【讨论】:
以上是关于如何根据相机校准(C++)生成的真实数据使用opencv模拟失真?的主要内容,如果未能解决你的问题,请参考以下文章