How can I save images in a matrix?
17 次查看(过去 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);
0 个评论
采纳的回答
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.
0 个评论
更多回答(1 个)
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}
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Introduction to Installation and Licensing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!