将图像从圆柱内投影到平面2D [Matlab]

时间:2015-07-21 11:26:20

标签: image matlab transformation projection vision

在相机内部使用相机拍摄图像。我想将该图像转换为平面2d。圆柱体内的图像有很多点,形成一个网格。

enter image description here

我试图做的是估计转变。通过斑点分析,我可以检测每个点的中心并获得以像素为单位的坐标。我把它保存在名为ImCilynder的矩阵中。之后,我创建一个矩阵,其坐标位于平面中,名称为Im2d。

我计算求解方程的变换(H):

Imcilynder * H= Im2d;

H= matrix [9x1]

H=pinv(Imcilynder) * Im2d

但是,当我用相同的点进行测试时,结果是完全随机的,所以我做错了。

有没有更好的方法来解决这个问题?你能帮助我吗?

更好地解释,

我正在尝试找到将上面的图像转换为此图像的转换: enter image description here

因此,为了澄清,我希望将我在第一张图像中看到的点投影到一个平面。基本上我想要打开圆筒。

计算变换矩阵后。我期望将第一个图像与变换矩阵相乘并获得平面中的点。或者乘以黑点中心的坐标并获得平面中该点的坐标。这可能吗?

非常感谢,

丰索

1 个答案:

答案 0 :(得分:1)

嗯,你想在飞机上做什么?圆圈形成一个网格?因为如果是这种情况你需要去除径向失真,这些模型由一些参数表示,顺便说一下是非线性的。如果你能找到一个非常好的算法,你可能会得到这样的东西:

enter image description here

如果这不是你的想法,你需要应用弹性变换,这种变换需要使用一种网格作为变换的模型,你需要提出你的网格模型。如果你想自动执行此操作,你需要使用弹性配准算法,你可以使用这样的模型:

enter image description here

无论如何,这不是一项微不足道的任务,如果你想自动获得转换,当然有很多关于复杂转换的研究。否则你可以使用photoshop;)。