see a 2d plane from a 3d image

1 view (last 30 days)
The code to form a sphere of 100x100x10 pixels is the following
%
imageSizeX = 100;
imageSizeY = 100;
imageSizeZ = 100;
[X,Y,Z] = ndgrid(1:imageSizeX, 1:imageSizeY, 1:imageSizeZ);
% Next create the circle in the image.
centerX = 50;
centerY = 50;
centerZ = 50;
radius = 25;
circlePixels = (Z-centerZ).^2 + (Y-centerY).^2 + (X-centerX).^2 <= radius.^2;
I would like to visualize a horizontal plane 2d in some position z of the sphere in a square of 100x100 pixels, obviously this image would be a circle.
How would that be done, thank you very much.

Accepted Answer

Image Analyst
Image Analyst on 27 Oct 2018
Try slice().
  2 Comments
Marcelo hernandez
Marcelo hernandez on 27 Oct 2018
matlab says that Input grid is not valid MESHGRID. i try
%
xslice = 10;
yslice = [];
zslice = [];
slice(X,Y,Z,circlePixels,xslice,yslice,zslice,'nearest')
Image Analyst
Image Analyst on 27 Oct 2018
Try this:
imageSizeX = 100;
imageSizeY = 100;
imageSizeZ = 100;
[X,Y,Z] = ndgrid(1:imageSizeX, 1:imageSizeY, 1:imageSizeZ);
% Next create the circle in the image.
centerX = 50;
centerY = 50;
centerZ = 50;
radius = 25;
circlePixels = (Z-centerZ).^2 + (Y-centerY).^2 + (X-centerX).^2 <= radius.^2;
circlePixels = double(circlePixels);
zslice = 50;
slice(circlePixels,[],[],zslice,'nearest')

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!