我目前必须从一堆2D切片(MATLAB中的二维矩阵,它们表示二维灰度图像)创建一个球体。我使用下面的代码创建了一堆切片。为了创建球体,我已经重复创建了大小增加到100的圆的切片,然后减小了大小。所有这些切片都添加到3D矩阵中。我需要从一堆2D切片创建一个3D球体
Circle = ones(200,400,400);
for i = 1:100
[rr cc] = meshgrid(1:400);
C = sqrt((rr-200).^2+(cc-200).^2)<=i;
for j = 1:400
for k = 1:400
Circle(i,j,k) = C(j,k);
end
end
end
index = 100;
for i = 1:100
[rr cc] = meshgrid(1:400);
C = sqrt((rr-200).^2+(cc-200).^2)<=index;
for j = 1:400
for k = 1:400
Circle(i+100,j,k) = C(j,k);
end
end
index = index - 1;
end
viewer3d(Circle);
viewer3d
是第三部分库,它可以帮助您查看片的3D图像栈的3D对象。一旦我想象出这个“假定”的球体,我意识到它是一个菱形的顶部而不是球体。
因此,我不知道如何改变圆的大小,直到y
平面中的球体的中心点,然后用相同的算法减小它。
谢谢你的回答,请不要犹豫,让我澄清这个问题中的任何事情。
我从除去不相干[\ [切片\]](http://stackoverflow.com/tags/slice/info)标签的题。请在发布之前阅读标签描述,以确保标签意味着您认为它的含义:)此外,您可以使用'for i = 100:-1:1'创建递归循环,更一般地看一下什么'100:-1:1'是。 –
@AndrasDeak我忘记了'for i = 100:-1:1'!谢谢你提醒我!我在谈论标签描述的粗略意义上的切片,而是一个科学切片。然而标签去除是合理的! –
对不起,如果我误解了,欢迎您重新提出您的问题:)这也是我留下评论的原因:您可以判断其正确性。 –