Академический Документы
Профессиональный Документы
Культура Документы
Introduction
MatLab : Matrix Laboratory
A high-level language for matrix calculations,
(m-file) Semicolon at end of line is optional (suppresses printing) Control flow (if, for, while, switch,etc) similar to C Differences from C: no variable declarations, no pointers
MATLABs Workspace
who,whos - current variables in workspace save - save workspace variables to *.mat file load - load variables from *.mat file clear all - clear workspace variables
Matlab Basics
Everything is a matrix a variable is a 1x1 matrix Initializing a matrix: Example: my_matrix = [1 2 3; 4 5 6; 7 8 9]; Accessing a matrix (row, column): my_matrix(1,2) has the value 2
my_matrix = 1 2 3 4 5 6 7 8 9
Colon operator generates a range Example: 1:10 = [1 2 3 4 5 6 7 8 9 10] mytest(1, 2:4) is equivalent to mytest(1,[2 3 4]) mytest(3, :) refers to all elements of row 3
matrices : +, -, *, /, ^, sqrt, sin, cos etc. Element wise operators defined with preceding dot : .*, ./, .^ . size(A) - size vector sum(A) - columns sums vector sum(sum(A)) - all the elements sum
Logical Conditions
(not)~
find(condition) - Returns indexes
of As elements that satisfies the condition.
Logical Conditions(cont.)
Example:
>> A = [1 2; 3 4], I = find(A<4) A= 1 3 2 4
I= 1 2 3
Flow Control
if
Scripts,
which do not accept input arguments or return output arguments. They operate on data in the workspace. which can accept input arguments and return output arguments. Internal variables are local to the function.
Functions,
function figure , figure(k) - open a new figure hold on, hold off - refreshing mesh(x_ax,y_ax,z_mat) - view surface contour(z_mat) - view z as top. map subplot(3,1,2) - locate several plots in figure axis([xmin xmax ymin ymax]) change axes title(figure title) - add title to figure
functions that extend the capability of the MATLAB numeric computing environment. The toolbox supports a wide range of image processing operations, including:
Geometric operations Neighborhood and block operations Linear filtering and filter design Transforms Image analysis and enhancement Binary image operations
: : : :
Image Display
image
- create and display image object imagesc - scale and display as image imshow - display image colorbar - display colorbar getimage- get image data from axes truesize - adjust display size of image zoom - zoom in and zoom out of 2D plot
Image Conversion
gray2ind - intensity image to index image im2bw
- image to binary im2double - image to double precision im2uint8 - image to 8-bit unsigned integers im2uint16 - image to 16-bit unsigned integers ind2gray - indexed image to intensity image mat2gray - matrix to intensity image rgb2gray - RGB image to grayscale rgb2ind - RGB image to indexed image
Geometric Operations
Image resizing: imresize(I,[x y],method). Method is bilinear, bicubic or nearest neighbours. Image rotation: imrotate(I,angle,method) method is same as before. Zero padding in the rotated image. Image cropping: J=imcrop;
Neighbourhood Processing
To speed up neighbourhood processing
the computations of the edges neighborhoods. Linear filtering can be done with convolution - conv2(Img, h) or correlation - filter2(Img, h). Nonlinear filtering: nlfilter(I,[sx sy],func) where func is a function that recieves the windows and returns scalars.
17
Transforms
Fourier and inverse Fourier transform:
I=imread(cameraman.tif); I=im2double(I); T=dctmtx(8); B=blkproc(I,[8 8], P1*x*P2,T,T); mask=[1 1 1 0 0 ]; B2=blkproc(B,[8 8],P1*x,mask); I2=blkproc(B2,[8 8],P1*x*P2,T,T); It is also possible to use dct2 and idct2.
18
19
Edge detection:
Histogram stretching:
imadjust(I,[low high],[bottom top]);
Gamma correction:
imadjust(I,[],[],gamma_coef);
Histogram Equalization
histeq(I)
20
Noise removal
To add noise to an image: imnoise(I,type,coef); type can be salt n pepper, speckle, gaussian for S&P, multiplicative and additive noise. Averaging or gaussian filtering: F=filter2(fspecial(average,3),J); Median filtering: F=medfilt(J,[3 3]);
21
Morphological Operations
Dilation : imdilate() Erosion: imerode() Closing: imclose() Opening: imopen()
22
The available colorspaces: RGB, NTSC (US televisions), YCbCr (Digital video), HSV. Transformations between the spaces: rgb2ntsc, hsv2rgb,
Color
23
Questions?