首页 > 解决方案 > 需要消除相机镜头失真

问题描述

我们有这台相机,它是ELP 180度超广角畸变校正。我们需要标准化从这个相机捕获的图像。但它既不是鱼眼也不是标准相机。

据我了解,这是桶形失真。但是,如果您注意到直线是水平弯曲的,而垂直线不是弯曲的。相机的制造商说它是“失真校正”。所以让我们假设他们想说垂直失真得到纠正,但水平失真没有得到纠正。

样品照片

我们尝试了以下两种消除失真的方法,但并不完美。请帮助我们消除它的失真。非常感谢。


  1. 我们尝试了 OpenCV Camera Calibration 来获得相机内在参数失真系数

内在参数

[673.9683892, 0., 343.68638231]
[0., 676.08466459, 245.31865398]
[0., 0., 1.]

失真

[5.44787247e-02, 1.23043244e-01, -4.52559581e-04, 5.47011732e-03, -6.83110234e-01]

  1. Matlab 计算机视觉工具获取内在参数失真系数

内在参数

 [291.11314081, 0.0, 289.772432415],
 [0.0, 274.219315391, 223.73258747],
 [0., 0., 1.0]

失真

[-3.0108207175179114e-01, 1.0803633903579697e-01, 4.3487318865386296e-03, -5.9566348399883859e-04, -1.8867490263403317e-02]

结果

Original image:

这是原始图像

After Removing Distortion:

消除失真后

标签: opencvcameracomputer-visioncamera-calibrationmatlab-cvst

解决方案


对我来说,看起来可能有一个棱镜(或一个数字棱镜等效的重新映射滤波器)水平“挤压”图像,这具有在视觉上突出水平方向的桶的效果。

如果我是对的,我认为标准的 OpenCv Heikkila-Silven 模型不适合它。您需要在 (x, y) 中拟合 2 个单独的高阶多项式,一个用于失真的水平分量,一个用于垂直分量。

查找“变形镜头失真”


推荐阅读