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

问题描述 投票:0回答:1

我用圆柱体内的相机捕捉图像。我想将该图像转换为二维平面。圆柱体内的图像有很多点,形成网格。

enter image description here

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

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

Imcilynder * H= Im2d;

H= matrix [9x1]

H=pinv(Imcilynder) * Im2d

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

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

解释得更好,

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

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

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

非常感谢,

阿方索

matlab computer-vision transformation projection
1个回答
1
投票

那么,您希望在飞机上拥有什么?圆圈形成网格?因为如果是这种情况,您需要消除径向畸变,这些模型由一些参数表示,顺便说一下,它们是非线性的。也许如果你能找到一个非常好的算法,你会得到这样的东西:

enter image description here

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

enter image description here

无论如何,这不是一个简单的任务,当然如果你想自动获得变换,有很多关于复杂变换的研究。否则你可以使用 Photoshop ;)。

© www.soinside.com 2019 - 2024. All rights reserved.