필터 지우기
필터 지우기

How to store multiple image vectors into matrix rows?

조회 수: 2 (최근 30일)
Sana Ullah
Sana Ullah 2017년 6월 3일
댓글: OO_98 2020년 5월 12일
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

채택된 답변

Image Analyst
Image Analyst 2017년 6월 3일
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.
  댓글 수: 1
Sana Ullah
Sana Ullah 2017년 6월 4일
Sir, Actually what i am trying to do is that, store all these 200 images into single matrix, then build similar matrix of the ground truths and pass this input and output to neural network, train the neural network with these sets of images and then do segmentation of these images using neural network. this would be the first step. as soon as i do this task successfully, i would further add some other functions as activation function in the neurons instead of sigmoid function .

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Phil
Phil 2017년 6월 4일
편집: Phil 2017년 6월 4일
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
habtamu miheretie
habtamu miheretie 2018년 10월 3일
hello man, can you share how you solved it, please?
OO_98
OO_98 2020년 5월 12일
hello,Please tell us how you solved the problem. I need that a lot

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Image Data Workflows에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by