Using a for loop to put a number of 2D arrays in a directory into a single 3D array

14 vues (au cours des 30 derniers jours)
Hi,
I have a number of 2D arrays (image files) in a directory which I am trying to open sequentially in a for loop so I can window them down, and then put them all into a 3D array. I know this is a simple question, I' having trouble creating the 3D array while opening each 2D array in the for loop. So for instance If I have 3 arrays each 512 x 512 in a directory I just want to loop through all three files and make a 512 x 512 x 3 array.
for f_index = 1 :(total_files)
%get the name of the file
name_string = strcat(datapath,dirout(f_index + 2).name);
%read the data in
data_frame= read_image_raw(name_string,512,512);
%concatenate each frame with the last
results = cat(3,data_frame(:));
end
I realize this is a beginners question. Thanks.

Réponses (2)

Arash Rabbani
Arash Rabbani le 12 Nov 2019
If your images are PNG and located in a folder, just run this code on that folder. 'A' is the resulted matrice:
D=dir('*.png');
Image_Size=[512,512];
A=zeros(Image_Size(1), Image_Size(2),numel(D));
for I=1:numel(D)
IMG=imread(D(I).name);
if ndims(IMG)>=3; IMG=rgb2gray(IMG); end
A(:,:,I)=IMG;
end

Jeremy
Jeremy le 11 Nov 2019
Modifié(e) : Jeremy le 11 Nov 2019
I misread at first, so I'm editing:
If you read in 3 2D arrays you can concatenate them - if A,B,C are each 2D then
D = A;
D(:,:,2) = B;
D(:,:,3) = C;
  1 commentaire
Mike Bakeman
Mike Bakeman le 11 Nov 2019
This is a weird CCD image and I have to use a particular subroutine to open each image which I'm trying to do in a for loop. After which I window out all the bad parts of the 2D data. That's all coded, I just need to create the 3D array and then I can do my statistics (that's all coded as well).
Thanks

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Produits


Version

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by