径向畸变校正、相机参数和openCV

Radial distortion correction, camera parameters and openCV

我正在尝试消除图像的 barrel/radial 失真。当我看到方程式时,它们不需要相机的焦距。但是 openCV API initundistortrectifymap 需要它们以相机固有矩阵的形式出现。为什么这样 ?无论如何要在没有他们的情况下做到这一点?因为我了解 undistort 对于各种失真校正很常见。

焦距对于消除失真至关重要 - 因为它提供了有关相机内在参数的信息 - 并且将其添加到相机矩阵中相当简单。请记住,您必须将其从毫米转换为像素。这样做是为了确保像素是矩形的。对于转换,您需要知道传感器的高度和宽度(以毫米为单位)、传感器的水平 (Sh) 和垂直 (Sv) 像素数以及以毫米为单位的焦距。使用以下等式完成转换:
fx = (f(mm) x Sh(px))/sensorwidth(mm)
fy = (f(mm) x Sv(px))/传感器高度(mm)

可以找到有关相机矩阵元素的更多信息here