How to vectorize a sequence of 2D images using matlab?

5 ビュー (過去 30 日間)
Yamini Nibhanupudi
Yamini Nibhanupudi 2018 年 4 月 10 日
回答済み: Dimitris Iliou 2018 年 4 月 10 日
I am trying to vectorize a large set of 100x100 images into 10000x1 column vectors. But I realised something is wrong with my code. I was wondering if anyone could provide me with the code to vectorize 2D images?
This is the code I used for matlab:
Pics = dir([source,'*.jpg']); %where the source contains my path that holds the jpg images
for i=1:length(Pics)
Im = imread([source,Pics(n).name]); Vectorized_Pic(:,:,1) = double(reshape(image(:,:,1),10000,1)); % if an image has 3 planes Vectorized_Pic= double(reshape(image,10000,1)); %if it is a 2D image
end

回答 (1 件)

Dimitris Iliou
Dimitris Iliou 2018 年 4 月 10 日
In order for this code to work, you will need to correct some of the variables you are using.
Firstly, in Pics(n), what is n? Do you mean Pics(i)?
Im = imread([source,Pics(n).name]);
Also, what is image in the following case? Should that be Im?
Vectorized_Pic(:,:,1) = double(reshape(image(:,:,1),10000,1));
Vectorized_Pic= double(reshape(image,10000,1));
In addition, Vectorized_Pic should be a vector that you iterate through.
Vectorized_Pic(i,:) = double(reshape(Im(:,:,1),10000,1));
Vectorized_Pic(i,:) = double(reshape(Im,10000,1));
and you should also check the number of planes you have using size.
Finally, instead of loading images with:
Pics = dir([source,'*.jpg']);
you should consider using imageDatastore. You can find more information on how to use it in:

Community Treasure Hunt

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

Start Hunting!

Translated by