OpenCV相机校准图像裁剪(ROI子矩阵)

时间:2014-03-16 13:53:32

标签: c++ opencv computer-vision camera-calibration

使用OpenCV的unsistort功能时遇到了一些问题。我正在使用广角镜头使用相机。假设我已经安装了对它的访问是有问题的。问题基本归结为:

我已经成功测量了所有镜头参数,并且可以毫无问题地解除整帧图像的失真,问题是我实际上是在某种线扫描模式下工作。我们在传感器中间使用了一个切口,大约100 px高。插图图片:

Part of the sensor used

现在,如果我对所讨论图像的ROI(感兴趣区域)应用不失真,它自然地假设它是整帧顶部的剪切,因此校正与它应该是的大致不同。在整个画面的高度的一半。

我理解如何修改相机矩阵以补偿图像比例我只使用较低分辨率的全帧,但问题是:我能否以任何方式补偿裁剪的部分偏移以实现正确的转换?< / p>

我认为我可以使用具有全帧分辨率的黑色图像,只需将相关数据复制到其中间,但这是不可能的,因为处理速度会受到太大的影响。

感谢您的任何见解!

干杯, 一月

1 个答案:

答案 0 :(得分:3)

如果裁剪图像,则主点将具有不同的坐标。例如,如果您的原始主点位于(30,40),并且您在边缘周围裁剪10个像素,那么您的新主点将位于(20,30),因为像素(20,30)位于裁剪后的图像与原始图像中的像素(30,40)相同。

您需要相应地调整相机矩阵中的cx和cy值。