Cropping 3D image and save into mat files

2 Ansichten (letzte 30 Tage)
Fadhurrahman
Fadhurrahman am 17 Jan. 2022
Kommentiert: Fadhurrahman am 18 Jan. 2022
Greetings,
So i want to crop a 3D images with 5x5x8 and save every single 5x5x8 into a mat files. the output has a 5x5x8 in it.
is there any reference to do it?
here is my code
Thank you very much for helping.
clear
close all
clc
R1 = geotiffread('1.tif');
R2 = geotiffread('2.tif');
R3 = geotiffread('3.tif');
R4 = geotiffread('4.tif');
R5 = geotiffread('5.tif');
R6 = geotiffread('6.tif');
R7 = geotiffread('7.tif');
R8 = geotiffread('8.tif');
stackb = cat(3,R1, R2, R3, R4, R5, R6, R7,R8)
% stackc=cat(3,R1, R2, R3, R4, R5, R6, R7)
c = images.spatialref.Cuboid([1,5],[1,5],[1,8]);
croppedVolume = imcrop3(stackc,c);
[rows, columns, numberOfColorChannels] = size(stackb);
N = rows;
for i = 1:N
Icropped{i} = imcrop3(stackb,c);
end
save(name, 'Icropped')
  4 Kommentare
KSSV
KSSV am 18 Jan. 2022
They are in a cell, you can extract them by using {}.
Icroped{1}, Icropped{2},..etc.
Fadhurrahman
Fadhurrahman am 18 Jan. 2022
@KSSV thank you. i have a new problem for saving it
so i want to save these "DCrop" for every iteration. but in the end it only save a single file
here's the code
N = 1000;
name=sprintf('a_%3d')
for i = 1:N
stackc = squeeze(stackc);
targetSize = [5 5 7];
win = randomCropWindow3d(size(stackc),targetSize);
Dcrop = imcrop3(stackc,win);
i=i+1
end
save(name,"Dcrop")

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu Agriculture finden Sie in Help Center und File Exchange

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by