Date post: | 31-Dec-2015 |
Category: |
Documents |
Upload: | irene-horton |
View: | 57 times |
Download: | 1 times |
MATLAB
Image Processing Toolbox
Muhammad ikram ul haq
BCS-F07-M032
5th Semester
Introduction
Collection of functions (MATLAB files) that supports a wide range of image processing operations
Documentationwww.mathworks.com
Read an Image
Read in an image Validates the graphic format
(bmp, hdf, jpeg, pcx, png, tiff, xwd)
Store it in an arrayclear, close allI = imread(‘pout.tif`);[X, map] = imread(‘pout.tif’);
Display an Image
imshow(I)
Check the Image in Memory
< Name, Size, Bytes, Class >whos
Name Size Bytes Class ans 291x240 69840 uint8 arrayGrand total is 69840 elements using 69840 bytes
uint8 [0, 255]
uint16 [0, 65535]
double [0, 1]
Histogram Equalization
Histogram: distribution of intensities
figure, imhist(I)
Equalize Image (contrast)I2 = histeq(I);
figure, imshow(I2)
figure, imhist(I2)
Histogram Equalization (cont.)
Histogram Equalization (cont.)
Write the Image
Validates the extension Writes the image to disk
imwrite(I2, ’pout2.png’);imwrite(I2, ‘pout2.png’, ‘BitDepth’, 4);
Morphological Opening
Remove objects that cannot completely contain a structuring element
Estimate background illuminationclear, close allI = imread(‘rice.tif’);imshow(I)background = imopen(I, strel(‘disk’, 15));imshow(background)
Morphological Opening (cont.)
Subtract Images
Create a more uniform backgroundI2 = imsubtract(I, background);figure, imshow(I2)
Adjust the Image Contrast
stretchlim computes [low hight] to be mapped into [bottom top]
I3 = imadjust(I2, stretchlim(I2), [0 1]);figure, imshow(I3)
Apply Thresholdingto the Image
Create a binary thresholded image1. Compute a threshold to convert the
intensity image to binary2. Perform thresholding creating a logical
matrix (binary image)level = graythresh(I3);bw = im2bw(I3, level);figure, imshow(bw)
Apply Thresholdingto the Image (cont.)
Storage Classes
double (64-bit), uint8 (8-bit), and uint16 (16-bit)
Converting (rescale or offset)doubleim2double (automatic rescale and offsetting)RGB2 = im2uint8(RGB1);im2uint16imapprox (reduce number of colors: indexed images)
Image Types
IndexData matrix (uint8, uint16, double)Colormap matrix (m x 3 array of double [0
1])
Intensity (black = 0, white = ) Binary (0, 1)
B = logical(uint8(round(A))); (logical flag on)
B = +A; (logical flag off)
RGB (m x n x 3 of truecolor)
Converting Image Types
dither gray2ind grayslice im2bw ind2gray
ind2rgb mat2gray rgb2gray rgb2ind
Multiframe Image Arrays
Same size, #planes, colormap Store separate images into one
multiframe arrayA = cat(4, A1, A2, A3, A4, A5)
Extract frames from a multiframe array
FRM3 = MULTI(:, :, :, 3)
Display a frameimshow(MULTI(:, :, :, 7))
Image Arithmetic
imabsdiff imadd imcomplement imdivide
imlincomb immultiply imsubtract
Adding Images
I = imread(‘rice.tif’);J = imread(‘cameraman.tif’);K = imadd(I, J);imshow(K)
Brighten an image results saturationRGB = imread(‘flowers.tif’);RGB2 = imadd(RGB, 50);subplot(1, 2, 1); imshow(RGB);subplot(1, 2, 2); imshow(RGB2);
Adding Images (cont.)
Adding Images (cont.)
Subtracting Images
Background of a scenerice = imread(‘rice.tif’);background = imopen(rice, strel(‘disk’,
15));rice2 = imsubtract(rice, background);imshow(rice), figure, imshow(rice2);
Negative valuesimabsdiff
Subtracting Images (cont.)
Multiplying Images
Scaling: multiply by a constant(brightens >1, darkens <1)
Preserves relative contrastI = imread(‘moon.tif’);J = immultiply(I, 1.2);imshow(I);figure, imshow(J)
Multiplying Images (cont.)
Dividing Images (Ratioing)
I = imread(‘rice.tif’);background = imopen(I, strel(‘disk’, 15));Ip = imdivide(I, background);imshow(Ip, [])
Linear combination only truncates the final result
K = imlincomb(.5, I, .5, I2);
Dividing Images (cont.)
Coordinate Systems
Pixel Coordinates Discrete unit
(integer) (r, c) = (1, 1)
Spatial Coordinates Continuous unit (x, y) = (0.5, 0.5)123
Non-default Spatial Coordinate System
A = magic(5);x = [19.5 23.5];y = [8.0 12.0];image(A, ‘xData’, x, ‘yData’, y), axis
image, colormap(jet(25))
Spatial Transformations
Map pixel locations in an input image to new locations in an output image Resizing Rotation Cropping
Resizing Images
Change the size of an imageI = imread(‘ic.tif’); J = imresize(I, 1.25);K = imresize(I, [100 150]);figure, imshow(J)figure, imshow(K)
Resizing Images (cont.)
Rotating Images
Rotate an image by an angle in degrees
I = imread(‘ic.tif’); J = imrotate(I, 35, ‘bilinear’);imshow(I)figure, imshow(J)
Rotating Images (cont.)
Cropping Images
Extract a rectangular portion of an image
imshow ic.tifI = imcrop;
Ending