Switching elements in 3D image(xy) dataset to export yz and xz images
I am working on (x*y)*z (eg. 300x300x300 pixel) binary image data set that gets imported as a multidimentional array.
For directional open porosity calculation I need to export YZ and XZ images for further calculation
A rough example on the layout(the numbers here would be 0 or 1 in actual data):
M(:,:,1) = [1 2 3; 4 5 6; 7 8 9];
M(:,:,2) = [10 11 12; 13 14 15; 16 17 18];
M(:,:,3) = [19 20 21; 22 23 24; 25 26 27];
for t1=1:size(M,3)
for i1=1:size(M,3)
YZ(i1,:,:)=M(:,:,i1);
end
end
for t2=1:size(M,3)
for i2=1:size(M,3)
XZ(:,t2,:)=M(i2,t2,:);
end
end
This produces the images in the YZ.
YZ(:,:,1) = [1 4 7; 10 13 16; 19 22 25];
YZ(:,:,2) = [2 5 8; 11 14 17; 20 23 26];
YZ(:,:,3) = [3 6 9; 12 15 18; 21 24 27];
I am facing the problem in the XZ planes, the last section produces only the required first page of the multidimentional array
the current output is
7 8 9
16 17 18
25 26 27
The required outout would be something like
XZ(:,:,1) = [7 8 9; 16 17 18; 25 26 27];
XZ(:,:,2) = [4 5 6; 13 14 15; 22 23 24];
XZ(:,:,3) = [1 2 3; 10 11 12; 19 20 21];
or the reverse
XZ(:,:,1) = [1 2 3; 10 11 12; 19 20 21];
XZ(:,:,2) = [4 5 6; 13 14 15; 22 23 24];
XZ(:,:,3) = [7 8 9; 16 17 18; 25 26 27];
I saw this question https://nl.mathworks.com/matlabcentral/answers/302683-switch-elements-of-the-2nd-and-3d-dimension-in-3d-matrix
But in my case permute() is not generating the required layout.
Any info would be really helpful!I am working on (x*y)*z (eg. 300x300x300 pixel) binary image data set that gets imported as a multidimentional array.
For directional open porosity calculation I need to export YZ and XZ images for further calculation
A rough example on the layout(the numbers here would be 0 or 1 in actual data):
M(:,:,1) = [1 2 3; 4 5 6; 7 8 9];
M(:,:,2) = [10 11 12; 13 14 15; 16 17 18];
M(:,:,3) = [19 20 21; 22 23 24; 25 26 27];
for t1=1:size(M,3)
for i1=1:size(M,3)
YZ(i1,:,:)=M(:,:,i1);
end
end
for t2=1:size(M,3)
for i2=1:size(M,3)
XZ(:,t2,:)=M(i2,t2,:);
end
end
This produces the images in the YZ.
YZ(:,:,1) = [1 4 7; 10 13 16; 19 22 25];
YZ(:,:,2) = [2 5 8; 11 14 17; 20 23 26];
YZ(:,:,3) = [3 6 9; 12 15 18; 21 24 27];
I am facing the problem in the XZ planes, the last section produces only the required first page of the multidimentional array
the current output is
7 8 9
16 17 18
25 26 27
The required outout would be something like
XZ(:,:,1) = [7 8 9; 16 17 18; 25 26 27];
XZ(:,:,2) = [4 5 6; 13 14 15; 22 23 24];
XZ(:,:,3) = [1 2 3; 10 11 12; 19 20 21];
or the reverse
XZ(:,:,1) = [1 2 3; 10 11 12; 19 20 21];
XZ(:,:,2) = [4 5 6; 13 14 15; 22 23 24];
XZ(:,:,3) = [7 8 9; 16 17 18; 25 26 27];
I saw this question https://nl.mathworks.com/matlabcentral/answers/302683-switch-elements-of-the-2nd-and-3d-dimension-in-3d-matrix
But in my case permute() is not generating the required layout.
Any info would be really helpful! I am working on (x*y)*z (eg. 300x300x300 pixel) binary image data set that gets imported as a multidimentional array.
For directional open porosity calculation I need to export YZ and XZ images for further calculation
A rough example on the layout(the numbers here would be 0 or 1 in actual data):
M(:,:,1) = [1 2 3; 4 5 6; 7 8 9];
M(:,:,2) = [10 11 12; 13 14 15; 16 17 18];
M(:,:,3) = [19 20 21; 22 23 24; 25 26 27];
for t1=1:size(M,3)
for i1=1:size(M,3)
YZ(i1,:,:)=M(:,:,i1);
end
end
for t2=1:size(M,3)
for i2=1:size(M,3)
XZ(:,t2,:)=M(i2,t2,:);
end
end
This produces the images in the YZ.
YZ(:,:,1) = [1 4 7; 10 13 16; 19 22 25];
YZ(:,:,2) = [2 5 8; 11 14 17; 20 23 26];
YZ(:,:,3) = [3 6 9; 12 15 18; 21 24 27];
I am facing the problem in the XZ planes, the last section produces only the required first page of the multidimentional array
the current output is
7 8 9
16 17 18
25 26 27
The required outout would be something like
XZ(:,:,1) = [7 8 9; 16 17 18; 25 26 27];
XZ(:,:,2) = [4 5 6; 13 14 15; 22 23 24];
XZ(:,:,3) = [1 2 3; 10 11 12; 19 20 21];
or the reverse
XZ(:,:,1) = [1 2 3; 10 11 12; 19 20 21];
XZ(:,:,2) = [4 5 6; 13 14 15; 22 23 24];
XZ(:,:,3) = [7 8 9; 16 17 18; 25 26 27];
I saw this question https://nl.mathworks.com/matlabcentral/answers/302683-switch-elements-of-the-2nd-and-3d-dimension-in-3d-matrix
But in my case permute() is not generating the required layout.
Any info would be really helpful! image processing, matrix array, matrix manipulation MATLAB Answers — New Questions