matlab投影到坐标平面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab投影到坐标平面相关的知识,希望对你有一定的参考价值。

[r,t]=meshgrid(0:0.1:2,pi*(0:0.1:2));
x=r.*cos(t); y=r.*sin(t);
z1=sqrt(5-r.^2); z2=r.^2./4;
mesh(x,y,z1);
hold on mesh(x,y,z2);
hold on;
n=zeros(size(r));
然后怎么投影到各个坐标平面

参考技术A 将mesh函数修改为meshc就好了
不过只有投影到XY平面的,应该无法投影到其他两个面本回答被提问者采纳

将图像从圆柱体内部投影到二维平面 [Matlab]

【中文标题】将图像从圆柱体内部投影到二维平面 [Matlab]【英文标题】:Projection of a image from inside a cylinder to a plane 2D [Matlab] 【发布时间】:2015-10-10 19:53:56 【问题描述】:

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

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

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

Imcilynder * H= Im2d;

H= matrix [9x1]

H=pinv(Imcilynder) * Im2d

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

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

解释得更好,

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

所以,澄清一下,我希望将我在第一张图像中看到的点投影到平面上。基本上我想打开圆柱体。

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

非常感谢,

阿方索

【问题讨论】:

我不确定线性变换是否可以从 cilinder2plane 中描述。不过很有趣。 第二个 Ander Biguri,这绝对不是线性变换。 可能相关:***.com/questions/7981815/… 【参考方案1】:

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

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

任何方式,这都不是一件小事,如果你想自动获得转换,当然有很多关于复杂转换的研究。否则你可以使用 Photoshop ;)。

【讨论】:

感谢您的回答,它解释了很多。我在投影/变换算法方面的经验非常少,所以我对这个主题有点迷茫。您是如何获得第一张图像的?你是用photoshop吗?我想如果你能解释我如何获得第一张图片,它可以解决我的问题。但是,理想的解决方案是使用您的第二个想法计算转换。你有什么网站可以提供给我关于弹性转换的第二个想法吗?谢谢,阿方索 好吧,我假设第一张图像是我想象的径向变换如何影响原始图像。但是,如果您对图像注册过程感兴趣,您可以从this 开始,您可以初步了解什么是图像注册以及它是否对您的应用程序有用。尽管弹性注册有点复杂,您可以观看this。 你好,我一直在阅读你给我的链接,但我真的不了解这个主题,我尝试过的一切都失败了,你能帮帮我吗?我试图实现这一点:mathworks.com/help/images/point-mapping.html 可能有用的是您所期望的图形示例,以便尝试帮助您 您不需要使用算法,我真正想看到的是您所期望的结果,您可以在一张纸上完成并上传它的照片:)

以上是关于matlab投影到坐标平面的主要内容,如果未能解决你的问题,请参考以下文章

Matlab中如何将surf得到的三维图与它在xy的投影图同在同一坐标下?

图像变换DIBR-3D图像变换(3D Image Warping)matlab源码

地理坐标系大地坐标系和投影坐标系的概念

Arcgis-Wiki_05-地图投影

常用坐标系简介以及转换(附代码)

数学建模暑期集训18:经纬度转换为平面坐标