How to store multiple image vectors into matrix rows?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Sana Ullah
am 3 Jun. 2017
Kommentiert: OO_98
am 12 Mai 2020
Hi all, I have a folder which contains 200 BMP images, I am reading all the images, converting each image into a vector and then trying to store these image vectors into a matrix. Following is the code which is self-explanatory, though it looks quite right however when i run the script it give me the following error. Subscripted assignment dimension mismatch.
Error in Readallimages (line 16) immat(437580,k)=imtovector
myFolder = 'C:\Users\Sana\Desktop\DermoscopyImages';
if ~isdir(myFolder)
errorMessage = sprintf('Error: The following folder does not exist:\n%s', myFolder);
uiwait(warndlg(errorMessage));
return;
end
filePattern = fullfile(myFolder, '*.bmp');
bmpFiles = dir(filePattern);
immat=zeros(437580,200);
for k = 1:length(bmpFiles)
baseFileName = bmpFiles(k).name;
fullFileName = fullfile(myFolder, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName);
imageArray = rgb2gray(imread(fullFileName)); %Read image and convert to Gray
imtovector=double(imageArray(:)); %convert 2D image into 1D vector
immat(437580,k)=imtovector %Store image vectors into matrix
imshow(imageArray); % Display image.
drawnow; % Force display to update immediately.
end
Any sort of help in this regard would be highly appreciated. Thanks in advance
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 3 Jun. 2017
You may run out of memory. Why do you think you need to do this? You may not have to. You may be able to just read in and process one image at a time.
Weitere Antworten (1)
Phil
am 4 Jun. 2017
Bearbeitet: Phil
am 4 Jun. 2017
I think the problem is that you are trying to squeeze a 437580 element array into a single array element (the bottom element of the kth column):
immat(437580,k)=imtovector
I think you meant to reference the WHOLE column, not just the last element of the column:
immat(:,k)=imtovector
If the problem persists, check that 'imtovector' really is 437580 elements long.
Also check the orientation of 'imtovector'. You are attempting to store each image as a column, so if 'imtovector' is a row, MATLAB might have an issue with that.
Hope this helps
3 Kommentare
Siehe auch
Kategorien
Mehr zu Image Data Workflows finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!