Buscar

Introduction on Matlab

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

1
INTRODUCTION ON MATLAB 
 
1. For an introduction on Matlab we strongly recommend the student to read the system’s 
on-line help, particularly the sections MATLAB and subsections Development 
Environment, Mathematics, Programming and Data Types, and for information about 
Matlab’s graphical resources, the student should read the subsections Graphics, 3-D 
Visualization and Creating Graphical User Interfaces. 
 
2. For an introduction on Matlab’s image processing functions we recommend the exercises 
on this list as well as the reading of the section Image Processing Toolbox and of the 
subsections Getting Started, Introduction and Displaying and Printing Images of the on-
line help. 
 
Exercises: 
 
1. Data Types (with the aid of the instructor). 
 
2. Image Types: 
 
• RGB: 
 
• Create 3 matrixes (Red, Green and Blue) with the same dimensions, containing 
values between 0 and 1. 
 
Example: (3 matrixes 3x3) 
RED=[0 1 0;1 0 1;1 0 0.5]; 
GREEN=[0 0 1;1 0 0;1 1 0.5]; 
BLUE=[0 0 0;0 1 1;1 1 0.5]; 
 
• To see the contents of the matrixes, type their names and then ENTER. Notice 
that if you place the character “;” at the end of a line, the content of the variable is 
not shown on the screen. And it is very important to notice that Matlab is case 
sensitive. 
 
• Concatenate the three matrixes to create a single three dimensional matrix (RGB) 
using the function “cat” (use the help to learn about the function). 
 2
 
Example: 
RGB=cat( 3, RED, GREEN, BLUE); 
 
• Visualize the content of the matrix RGB. The two first indices of the elements of 
the matrix define, respectively, their line and column numbers. The third index 
refers now to one of the three original matrixes. If we now consider matrix RGB 
as an image, the first two indices define the coordinates of a pixel, and the third, 
one of the RGB components of the pixel. 
 
• Visualize the resulting matrix with the functions: 
 
imshow(RGB, ‘notruesize’) – for Matlab 6, or 
imshow(RGB, ‘Initial Magnification’, ‘fit’) – for Matlab 7. 
 
• Indexed Image: 
 
• Create a matrix with the name “map”, containing 3 lines and three columns, and 
values between 0 and 1, to represent a color map. Create a two dimensional 
matrix X, with integer values between 1 and 3. Visualize the indexed image using 
the functions: 
 
imshow(X, map, ‘notruesize’) – for Matlab 6, or 
imshow(X, map, ‘Initial Magnification’, ‘fit’) – for Matlab 7. 
 
 3
• Gray Level Image: 
 
• Create a matrix X with values between 0 and 1. 
 
• Visualize the matrix as a gray level (intensity) image with the functions (where N 
is the number of gray levels to be shown): 
 
imshow(X, N, ‘notruesize’) – for Matlab 6, or 
imshow(X, gray(N), ‘Initial Magnification’, ‘fit’) – for Matlab 7. 
 
• Binary Image: 
 
• Repeat the previous exercise using exclusively the values 0 and 1 for the elements 
of X (binary image). 
 
3. Reading and Writing Images: 
 
• Image Reading: 
 
• Study the function “imread” using Matlab’s help on-line. 
 
• Create an image using the program Paint (Windows), and save the image in two 
different formats: 256 colors and 24 bits. 
 
• Read both images using the function “imread”. 
 
• Try to find out, with the aid of the function “whos” if the images are RGB or 
indexed images (to learn about the function type “help whos”). 
 
• Visualize the images using the function “imshow”. 
 
• Image Writing: 
 
• Save one of the images created in the previous exercise with the “bmp” format 
using the function “imwrite”. 
 
 4
• Open the saved image with the Paint program. 
 
• Experiment: 
 
• Read the image “forest.tif” and visualize it. What sort of image is it? 
 
4. Image Conversion: 
 
• With the aid of the help on-line, learn to use the functions “who”, “whos” and 
“clear”. 
 
• Check out the variables in your workspace. 
 
• Clear all the variables from your workspace. 
 
• Learn to use the functions “ind2gray”, “gray2ind”, “rgb2ind”, “ind2rgb”, 
“rgb2gray” and “gray2rgb”. Notice the options “dither/nodither”, and the use of a 
preexisting color map, for the xxx2ind functions. Notice the double data type (not 
uint8) for the elements of the resulting matrixes, for the xxx2rgb functions. 
 
• Transform the images created in the previous exercises into different image types 
and visualize the resulting images. 
 
5. Visualization: 
 
• Learn to use the function “figure”. Show two different images in different 
windows. 
 
• Learn to use the functions “subplot” and “subimage”. Show the two images of the 
previous exercise in a single window using the functions. 
 
• Learn to use the function “title”. Place titles on the windows of the previous 
exercises. 
 
 5
6. Matrixes’ Basics: 
 
• Create the matrix A using the following command: 
 
A = [16 3 2 13 19; 5 10 11 8 3; 9 6 7 12 8; 4 15 14 1 13; 1 2 3 4 5] 
 
• Observe what happens when the character “;” is placed at the end of the 
command. 
 
• Calculate the sum of the four corner cells of the matrix, referencing the respective 
indices. 
 
7. Check the output of the following commands: 
 
• A 
• A(1,3) + A(3,1) 
• A(1:3,3) 
• A(1:4,2:4) 
• A(:,3) 
• A(1:3,:) 
• Create a 5x3 matrix B, and apply the command A(:,[3 5 2])=B(:,1:3) 
• A(:) 
• A’ 
• A(:,[1 2 2 3 3 3 4 4 4 4]) 
• A([1 2 2 3 3 3 4 4 4 4],:) 
• A(A>10)=0 
 
8. Concatenation: 
 
• Create a 2x2 matrix A. Use the following commands and check their outputs: 
 
B=[A 2*A] 
 
B=[A A-1; 2*A A/2] 
 
9. Study the commands “zero”, “ones” , “eye” e “size”. 
 
 6
10. The colon “:” operator: 
 
• Try the following commands: 
 
X=[2.5:0.4:4.0] 
 
X=[2.5:4.5] 
 
11. Arithmetic Operators: 
 
• Type “help arith” and learn about the operators: “+”, “-”, “*”, “.*”, “/”, “./”, “^”, 
“.^”. 
 
• Experiment with the commands “*” and “.*”, and with “/” and “./”. 
 
12. Scripts and Functions (with the aid of the instructor). 
 
• Create a script that calculates the length of edge c of a triangle, given the length 
of the other two edges a and b, and the angle between edges a and b. Use the 
formula: 
 
c2 = a2 + b2 – 2ab cos θ 
 
Suggestion: use the function “cos” and investigate Matlab’s debugging 
capabilities. 
 
• Create a function from the script. 
 
• Learn how to use the function “openvar”. 
 
• Learn how to use “breakpoints”. 
 
13. Flow Control: 
 
• Learn to use the statements "if " , "for", "switch", "while" and "break" from 
Matlab’s help. 
 7
 
14. Function Graphs: 
 
• Create a vector x containing 100 values between 0 and 2*pi. Create the vector y 
containing the sine of each value in x (use the function “sin”). Graph the sine 
function (use the “plot(x,y)” function). To alter the axis’ characteristics, read the 
help section for the function “axis”. 
 
• Create a function to calculate the roots of the quadratic equation for arbitrary “a”, 
“b” and “c” coefficients and plot the equation. 
 
15. Save and Load: 
 
• Read the help section on the function “save”. Save in a file a (set of) variable(s) 
from your workspace. 
 
• Clear your workspace (“clear all”), and confirm that it is really empty (“whos”). 
 
• Read the help section on the function “load” and load the saved variable(s). Check 
your workspace. 
 
 
Proposed Exercises: 
 
1. Create a function that calculates the distance between two pixels: 
 
• The first two input parameters of the function are column vectors with two 
elements each (2x1) the first element corresponds to the x coordinate and the 
second, to the y coordinate of a pixel. 
 
• The third parameter is a character that defines one of three possibilities: “e” for 
Euclidean distance; “m” for Manhatandistance; or “c” for chessboard distance. 
 
• Create your own help for the function. 
 
 8
1. Performance Investigation: 
 
• Create a function that calculates the logarithm of the elements of a square (NxN) 
matrix in two different ways. The input matrix should be initialized with random 
values (use the function “rand”) and the output of the function must be a matrix 
with the same size of the input. 
 
• Initially implement the function using a loop that calculates at each iteration the 
log of a single element of the input matrix. Then implement the function using 
vector processing, that is, apply the function “log” to the entire input matrix. 
 
• Modify the function to determine the execution time of each of the 
implementation methods (use the functions “clock and “etime”). 
 
• Modify the function to evaluate the execution time for different values of N (use 
the functions “plot”, “hold”, “xlabel”, “ylabel”, “legend” and “title”).

Outros materiais