How can I save images in a matrix?

15 次查看(过去 30 天)
Hello my friends . I get my images with this code, but what if I don't want to save all the images in the output? (last two lines)
That is, it should be stored in a matrix and finally saved in CSV or TXT format. In this way, I want any image that was needed to be displayed for me later.
clc
clear
close all
cd training_data_out\
folderInfo = dir('**/*.wav');
cd ..\
addpath training_data_out\
% working (current) folder
for i=1:length(folderInfo)
filename = folderInfo(i).name
[x,Fs] = audioread(filename);
x=decimate(x,4);
% % st transform
[st_out,t,f]=st(x,25,350,1,1);
zz=abs(st_out);
im = ind2rgb(im2uint8(rescale(zz)), colormap);
filename_out = [filename(1:length(filename)-4) '.png']
imwrite(imresize(im, [224 224]), filename_out);

采纳的回答

Walter Roberson
Walter Roberson 2023-5-23
Replace
imwrite(imresize(im, [224 224]), filename_out);
with
filenames{i} = filename_out;
saved_im{i} = imresize(im, [224 224]);
Then later you can
imshow(saved_im{i})
to view an image without having yet saved it to file.
When you finally decide to save it to csv of text file, you have a bit of a challenge. You used ind2rgb so we know that for sure the data for each file is RGB, which means it is stored as a 3D array. csv files are really only designed for 2D data, so it is not clear how you would like the 3D data stored in the csv file.

更多回答(1 个)

Luca Ferro
Luca Ferro 2023-5-23
编辑:Luca Ferro 2023-5-23
you can store them in a cell array by doing:
imgArray{1,1}=imread('whateverimage.png');
imgArray{1,2}=imread('whateverimage2.jpeg');
...
imgArray{1,n}=imread('whateverimageN.jpeg');
and so on. Obiously you can allocate them using the loop you already have.
Then to access them use curly brackets.
imgArray{1,1}

类别

Help CenterFile Exchange 中查找有关 Environment and Settings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by