Slices 3D object into 2D figures

조회 수: 1 (최근 30일)
Trang Hu Jia
Trang Hu Jia 2022년 2월 2일
답변: yanqi liu 2022년 2월 7일
Hello everyone
I'm performing the image-processing with 3D object.
Suppose I have the 3D object as shown below.
The coordinates for each node in X, Y and Z direction corresponding to the faces of 3D object are attached (Coords and faces).
I want to slices this 3D object in to XY plane in 2D image along with Z direction (10 slices) and save in .TIFF file.
Does anyone know how to overcome this problem ?
Any other suggestions are really appreciate.
Thanks for the attendtion.

채택된 답변

yanqi liu
yanqi liu 2022년 2월 7일
clc; clear all; close all;
Coord = [ 0 2 0
0 2 1
0 3 0
0 3 1
0 4 0
0 4 1
1 2 0
1 2 1
1 3 0
1 3 1
1 4 0
1 4 1
2 2 0
2 2 1
2 3 0
2 3 1
2 4 0
2 4 1
3 2 0
3 2 1
3 3 0
3 3 1
3 4 0
3 4 1
4 2 0
4 2 1
4 3 0
4 3 1
4 4 0
4 4 1];
faces = [ 1 3 4 2
1 7 8 2
1 7 9 3
2 8 10 4
3 5 6 4
3 9 10 4
3 9 11 5
4 10 12 6
5 11 12 6
7 9 10 8
7 13 14 8
7 13 15 9
8 14 16 10
9 11 12 10
9 15 16 10
9 15 17 11
10 16 18 12
11 17 18 12
13 15 16 14
13 19 20 14
13 19 21 15
14 20 22 16
15 17 18 16
15 21 22 16
15 21 23 17
16 22 24 18
17 23 24 18
19 21 22 20
19 25 26 20
19 25 27 21
20 26 28 22
21 23 24 22
21 27 28 22
21 27 29 23
22 28 30 24
23 29 30 24
25 27 28 26
27 29 30 28];
colors = colormap(jet(size(Coord,1)));
close all;
spc = max(Coord(:,3))-min(Coord(:,3));
for i = 1 : 10
Coordi = Coord;
Coordi(:,3) = Coordi(:,3) / 10 + spc/10*(i-1);
S.Vertices = Coordi;
S.Faces = faces;
S.FaceVertexCData = colors;
S.FaceColor = 'flat';
S.EdgeColor = 'red';
S.LineWidth = 2;
figure
patch(S)
view(3)
xlabel('x');ylabel('y');zlabel('z');
axis([min(Coord(:,1)) max(Coord(:,1)) min(Coord(:,2)) max(Coord(:,2)) min(Coord(:,3)) max(Coord(:,3))]);
end

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Scalar Volume Data에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by