【问题标题】:Need help in 3D plot using MATLAB (X,Y,Z,V)使用 MATLAB (X,Y,Z,V) 在 3D 绘图中需要帮助
【发布时间】:2014-04-06 14:52:12
【问题描述】:

在 MATLAB 中绘制 3D 体积时,我需要寻求帮助。我的数据集包括 X、Y、Z 坐标和对应的强度值 V。

我在制作 2D 图像时使用了 pcolor (X,Y,V) 和 shading interp,但是当我要创建 3D 图像时却卡住了。我试过 scatter3、smooth3 和 slice,但它似乎不适合我需要的功能。

我的目标是用每个坐标对应的强度值绘制 3D 网格,并在这些点之间应用阴影插值。

我真的是 3D 绘图的新手,如果能帮助我实现我的目标,我将不胜感激。非常感谢!

以下是我尝试创建的一些图像示例
(来源:ndt.net


(来源:www.bam.de

【问题讨论】:

标签: matlab 3d plot volume imaging


【解决方案1】:

我为您的第一个示例提供了一个解决方案,其中显示了体积数据的三个横截面。使用此解决方案,您基本上可以在同一个 3D 图形中绘制多个具有不同方向的 pcolor。

首先,您需要不同切片的数据。这正是您在使用 pcolor(X,Y,V) 绘制 2D 横截面时所拥有的,其中 X、Y 和 V 是二维矩阵。您还需要使用切片的 z 位置创建一个矩阵 Z(例如 Z = zeros(size(X)) + z0)。然后使用命令 surface(X,Y,Z,V) 绘制 3D 横截面图像,其中 X,Y,Z 是位置,V 是颜色(函数的值)。

对所有其他切片重复此过程,为每个切片使用适当的 X、Y、Z、V 矩阵。对于其他轴上的切片,您必须相应地定义 X、Y、Z。记得在第一个曲面命令之后使用“hold on”,以便绘制所有切片。

例子:

surface(X1,Y1,Z1,V1); shading interp; hold on
surface(X2,Y2,Z2,V2); shading interp;
surface(X3,Y3,Z3,V3); shading interp;

colormap(jet(2048)); caxis([0,3]); % color axis colormap and scaling

axis equal; xlabel('X'); ylabel('Y'); zlabel('Z') % X,Y,Z scaling and label

这里的结果图:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 2011-04-28
    • 1970-01-01
    相关资源
    最近更新 更多