谁能识别出这种3D绘图功能呢? (MATLAB)

时间:2014-05-03 03:07:20

标签: image matlab 3d plot

我编写了SAFT(合成孔径聚焦技术)代码并成功绘制了2D图像。现在,我在绘制3D时遇到问题,因为我不知道应该使用哪种功能。我想创建3D图像,如下面的图像链接所示(右侧有固体卷),但我不知道他们使用的功能。我所知道的是左图是由拼接制作的。

如果有人能帮我解决这个问题,我真的很感激。提前谢谢!

3D plots

这是我一直用于3D阵列的示例代码。请注意,我刚刚使用了强度的随机值V,因为实际值存储在excel文件中。我在使用isosurface时遇到错误,因为我的数组不是使用meshgrid创建的。

r=linspace(50,500,101)';
o=zeros(101,1);
X=zeros(51,101,13);
Y=zeros(51,101,13);
Z=zeros(51,101,13);
V=rand(size(X));

slice=1;
for angle=0:15:180
    for elev=1:1:51
    %Setup X,Y,Z Coordinates
        X(elev,:,slice)=(r*cos(angle*3.141593/180))';
        Y(elev,:,slice)=(r*sin(angle*3.141593/180))';
        Z(elev,:,slice)=(o+((elev-1)*0.01))';
    end 
if slice < 13
    slice=slice+1;
else
end
end

2 个答案:

答案 0 :(得分:0)

你有没有试过冲浪&#39;或者&#39;网格&#39;?不知道它是否适合你的情况,但试一试。

答案 1 :(得分:0)

您的解决方案是使用matlab函数isosurface。唯一的问题是你的网格不是笛卡儿。 您应该使用meshgrid创建一个笛卡尔网格,并在使用V显示结果之前将isosurface值重新取样到该网格。

相关问题