matlab image processing toolbox
Download
Report
Transcript matlab image processing toolbox
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?