Image arrays and converting matrix to line

3 views (last 30 days)
Can someone explain what each line is doing in this code and how it's doing it, if possible?
I commented the best I could to get a general understanding of what's going on. But I don't understand it in detail. Like what the main lines of code are actually doing.
for i=1:10
FName=sprintf('%d.bmp',i);
image1=imread([FFolder1, FName]);
% Creating a 3D image for every number and implementing it in every loop
im1(:,:,i)=image1; % "A"
end
for i=1:M
FName=sprintf('%d.bmp',i+10);
image1t=imread([FFolder1, FName]);
im1t(:,:,i)=image1t; % "A"
end
for i=1:10 % Training images
im(:,:,i)=im1(:,:,i);
end
for i=1:20
imt(:,:,i)=im1t(:,:,i);
end
% The transition of values (0 1) to the range (0: 255)
for i=1:10*10 % Training images
imd(:,:,i)=(im2double(im(:,:,i)));
end
for i=1:10*20
imdt(:,:,i)=(im2double(imt(:,:,i)));
end
for s=1:10*10
for i=1:40
for j=1:120
Xv(s,(i-1)*120+j)=imd(j,i,s);
end
end
end
sizeXv=size(Xv);

Accepted Answer

Walter Roberson
Walter Roberson on 14 Mar 2016
There is a lot there which is inefficient.
The first two loops do not create a 3D array for each number. They read images as "slices" in a 3D array.
The code
for i=1:N % Training images
im(:,:,i)=im1(:,:,i);
end
can be coded much more compactly as
im = im1;
since im1 is exactly N panes long anyhow. Likewise the training and test can be done by simple copying of entire arrays.
For
for i=1:10*N % Training images
imd(:,:,i)=(im2double(im(:,:,i)));
end
you might prefer this code, but it is not the most efficient. More efficient would be to work on the entire array at one time,
if isa(im, 'uint8') %bmp can be logical or 8 bit or 24 but not 16 bit
imd = double(im) ./ (2^8-1);
else
imd = double(im);
end
and if you were sure ahead of time which data class it was going to be, you could optimize that. I suspect you are working with uint8 images.
The last bit could be rewritten as
Xv = reshape(imd, size(imd,1)*size(imd,2), size(imd,3)) .';

More Answers (0)

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!