making a 2d image from 3d shape

11 次查看(过去 30 天)
Hello. I have a shape that I would like to cut out a slice of. I also have coordinates from an XY plane at a particular Z value that I'd like to use. So because I'm expecting 2 circles, I calculate their radii and see if my XY plane coordinates match up. However, I'm not getting any good results...is there a better way to do this
This is my shape
This is the way the slice is supposed to look (but upside down)
This is what I'm getting. So my result is suposed to be a 64 by 64 double image. The reason my shape is to the left is because my coordinates also contain negative values. My shape is in the positive side.
This is what my code looks like to make the slice. X_pixels, Y_pixels etc are the coordinates I'm checking.
  6 个评论
Matt J
Matt J 2021-4-18
编辑:Matt J 2021-4-18
Please post code in the form of text (in a code-well like the one below) rather than as an image. It makes it easier for us to copy/paste/run.
[X,Y,Z]=sphere;
X_axis=X*2

请先登录,再进行评论。

采纳的回答

Matt J
Matt J 2021-4-18
编辑:Matt J 2021-4-18
It seems like it would be better if you would just generate your spheres direclty as a 3D image volume. Then you could just use the slice() commnd to get get the slice images that you want.
xl=(-3:.03:3);
[yl,zl]=deal((-2:0.03:2));
[X,Y,Z]=ndgrid( xl,yl,zl);
Spheres=((X+1.1).^2+Y.^2+Z.^2)<=2^2 | (X-1.1).^2 + Y.^2 +Z.^2<=2^2;
imshow(Spheres(:,:,20).');
  10 个评论
Matt J
Matt J 2021-4-21
编辑:Matt J 2021-4-21
It's a 3D array with 134 slices.
whos Spheres
Name Size Bytes Class Attributes Spheres 201x134x134 3609156 logical
I just picked the 20th slice arbitrarily. The .' transposes the slice, so that it's longest side is displayed horizontally, but you don't have to do that if you prefer to view the untransposed slice.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Surface and Mesh Plots 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by