matlab image processing toolbox

advertisement
MATLAB
IMAGE PROCESSING TOOLBOX
Gulsah Tumuklu Ozyer
Introduction
 MatLab : Matrix Laboratory
 A high-level language for matrix calculations, numerical analysis,
& scientific computing
 Programming
 Can type on command line, or use a program file (“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
MATLAB’s 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
Basic Operations on Matrices
 All the operators in MATLAB defined on 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 equal)~= ,(not)~
 find(‘condition’) - Returns indexes of A’s elements
that satisfies the condition.
Logical Conditions(cont.)
 Example:
>> A = [1 2; 3 4], I = find(A<4)
A=
1
3
I=
1
2
3
2
4
Flow Control
 MATLAB has five flow control constructs:
 if statements
 switch statements
 for loops
 while loops
 break statements
Scripts and Functions
 There are two kinds of M-files:
 Scripts, which do not accept input arguments or
return output arguments. They operate on data in
the workspace.
 Functions, which can accept input arguments and
return output arguments. Internal variables are local
to the function.
Visualization and Graphics
 plot(x,y), plot(x,sin(x)) - plot 1-D 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
The Image Processing Toolbox
 The Image Processing Toolbox is a collection of 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
MATLAB Image Types
 Indexed images
 Intensity images
 Binary images
 RGB images
: m-by-3 color map
: [0,1] or uint8
: {0,1}
: m-by-n-by-3
Read and Write Images
 I = imread(‘colors.jpg');
imshow(I);
 Indexed Image:
 [x,map] = imread(‘color.png');
 imwrite(I, ‘newim.jpg’)
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 transform every
neighbourhood to column vector and perform vector operations.
 The borders are usually padded with zeros for 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:
F=fftshift(fft2(f)); F is a complex matrix
Freal=real(F);Fimag=imag(F);Fabs=abs(F);Fphs=angle(F);
imshow(Freal)
f=ifft2(F);
 DCT and compression
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
Analyzing and Enhancing Images
pixval returns the value of a pointed pixel and the distance between
two pointed pixels.
impixel returns the data value for a selected set of pixels. The set can
be pointed by the mouse or by coordinates.
imcontour plots the contours of the image.
imhist(I,n) plots the histogram of I with n bins.
19
 Edge detection:
edge(I,’sobel’);
edge(I,’canny’);
Or by fspecial(‘sobel’) and conv2.
 Image Enhancement:
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
Color
The available colorspaces:
RGB, NTSC (US televisions),YCbCr (Digital video), HSV.
Transformations between the spaces:
rgb2ntsc, hsv2rgb, …
23
 Questions?
Download