A Brief Introduction to MATLAB
MATLAB is a large numerical and symbolic analysis package installed on
the EWS system. You can access Matlab from the GUI of Linux by clicking "Applications" drop down menu, then "EWS software" followed by "Matlab".
Image Processing Functions
To obtain a list of image processing commands available under MATLAB,
type
 
help images
 
at the MATLAB prompt. Images are included with the image processing
toolbox (IPT). Some image's names: "clown," "trees," and "forest."
To load an image, type
 
load image_name
 
where image_name is the name of an image. This command creates
the two variables X and map. X is an array
of values that indexes a color map contained in map.
To display the images type
 
imshow(X,map)
 
to display image X with colormap map. To load 8-bit
grayscale images not included in the toolkit (e.g. tank_01.raw, fn002.raw, etc.)
type the following:
fid = fopen('image_name','r');
image = fread(fid, [xsz,ysz]);
image = image' / 255;
The first command assigns a file pointer to the image file
"image_name." The second command reads the image from a file into an
array image of size xsz by ysz. The last
command takes the transpose of image and scales it for
display purposes.
Note: you may need to type
 
truesize
 
to display the image at its normal size (MATLAB often ignores an
image's dimensions and uses some default size instead).
Finally, type
 
imshow(image,256)
 
to display the image. The argument "256" tells Matlab to display the
image with a grayscale map of 256 different gray scales.
How to Display a Video Sequence In Matlab?
Suppose you have the frames X_i where i = 1,2,..,N . Each of these frames
are images themselves and should be of the same size. The assumtion is
that all pixels within these frames are between 0 and 1 (normalized) and
transposed so that imshow(X_i) works for each frame. Then there are 2 ways
to display these frames as a video sequence
1st Way
for i=1:1:N,
Do processing to form the frame X_i
X(:,:,1,i) = X_i;
end;
mov = immovie(X*256,gray(256));
movie(mov);
2nd Way
for i=1:1:N,
Do processing to form the frame X_i
image(X_i);
mov(:,i) = getframe;
end;
movie(mov);
MATLAB Functions and Macros
MATLAB is a high level language and lets you write functions to make
programming easier.
A MATLAB file must have the file extentsion ".m" (e.g., my_program.m).
Let us call such a file an "m-file". To use a MATLAB function that has
been saved as an m-file, type the function name at the MATLAB prompt
without the extension. For example, suppose we create an ASCII text
file "fun.m" that contains the following function:
function[test1, test2] = fun(a, b, c)
statement;
statement;
end
To use "fun", type:
[var1, var2] = fun(a1, a2, a3);
where a1, a2, a3 are passed to the function "fun", and var1, var2 are values
returned by the function.
An m-file does not need to contain a function. It could just contain
a series of MATLAB commands that is executed when it is loaded.
MATLAB takes a _very_ long time to execute "for" loops. Try to avoid
"for" loops by using MATLAB's built-in matrix functions; MATLAB is
optimized for array processing. Take advantage of these functions to
reduce your software development time.
Lab 6 p.3 - Coding
Last edit 26-Feb-07