给定焦距和摄像机位置/旋转的正确透视图像

时间:2016-01-20 20:06:24

标签: matlab image-processing camera-calibration homography

我使用标准相机拍摄的图像,如下面的设置所示。我很幸运地假设我知道焦距(以毫米为单位),裁剪因子和传感器尺寸,并且可以假设投影中心是图像的中心 - 所以我知道它的位置以像素为单位和传感器

我也知道相机的角度,参考蓝色平​​面及其在该平面上方的高度。相机仅在x轴上旋转,我们假设它与世界x轴平行。

Setup of camera over plane

现在我需要对图像进行度量校正,以便我可以以毫米为单位测量蓝色平面上的对象(2D)。

我一直在尝试使用Matlab中的各种工具来实现这一目标,但到目前为止,我的结果令人失望。显然这是一个平面平面单应性问题,我认为基于我知道传感器大小和其中像素数的事实,可以解决比例。

我的搜索引发了我这个类似的问题,但答案中的方法并不适用于我(下文进一步说明):How to do perspective correction in Matlab from known Intrinsic and Extrinsic parameters?

我试过计算内在矩阵和外在矩阵,然后得到单应性:

SELECT Parent.name FROM Parent JOIN Child on Parent.Id = Child.parentLink WHERE Child.timeStamp > '2016-01-01 : 00.00.00'

这不幸地为我提供了垃圾 - 给出了这张图片的原件大小:

Downscaled input image

我从上面的代码得到了这个结果:

Result of homography calculated using above

鉴于其仅有x轴旋转,我认为由于单应性,我们应该得到梯形形状,但我似乎并不是这样。任何人都可以指出我在这里犯过的任何明显错误吗?

1 个答案:

答案 0 :(得分:0)

你正在混合像素和mm。以像素为单位表示矩阵KK,使用已知的图像宽度和高度作为缩放因子。