Download presentation
Presentation is loading. Please wait.
Published byLydia Loveman Modified over 9 years ago
1
MATLAB Image Processing Toolbox
2
Introduction Collection of functions (MATLAB files) that supports a wide range of image processing operations Documentation www.mathworks.com
3
Read an Image Read in an image Validates the graphic format (bmp, hdf, jpeg, pcx, png, tiff, xwd) Store it in an array clear, close all I = imread(‘pout.tif`); [X, map] = imread(‘pout.tif’);
4
Display an Image imshow(I)
5
Check the Image in Memory whos Name Size Bytes Class ans 291x240 69840 uint8 array Grand total is 69840 elements using 69840 bytes uint8[0, 255] uint16[0, 65535] double[0, 1]
6
Histogram Equalization Histogram: distribution of intensities figure, imhist(I) Equalize Image (contrast) I2 = histeq(I); figure, imshow(I2) figure, imhist(I2)
7
Histogram Equalization (cont.)
9
Write the Image Validates the extension Writes the image to disk imwrite(I2, ’pout2.png’); imwrite(I2, ‘pout2.png’, ‘BitDepth’, 4);
10
Morphological Opening Remove objects that cannot completely contain a structuring element Estimate background illumination clear, close all I = imread(‘rice.tif’); imshow(I) background = imopen(I, strel(‘disk’, 15)); imshow(background)
11
Morphological Opening (cont.)
12
Subtract Images Create a more uniform background I2 = imsubtract(I, background); figure, imshow(I2)
13
Adjust the Image Contrast stretchlim computes [low hight] to be mapped into [bottom top] I3 = imadjust(I2, stretchlim(I2), [0 1]); figure, imshow(I3)
14
Apply Thresholding to the Image Create a binary thresholded image 1. Compute a threshold to convert the intensity image to binary 2. Perform thresholding creating a logical matrix (binary image) level = graythresh(I3); bw = im2bw(I3, level); figure, imshow(bw)
15
Apply Thresholding to the Image (cont.)
16
Labeling Connected Components Determine the number of objects in the image Accuracy (size of objects, approximated background, connectivity parameter, touching objects) [labeled, numObjects] = bwlabel(bw, 4); numObjects {= 80} max(labeled(:))
17
Select and Display Pixels in a Region Interactive selection grain = imcrop(labeled) Colormap creation function RGB_label = label2rgb(labeled, @spring, ‘c’, ‘shuffle’); imshow(RGB_label); rect = [15 25 10 10]; roi = imcrop(labeled, rect)
18
Object Properties Measure object or region properties graindata = regionprops(labeled, ‘basic’) graindata(51).Area{296} graindata(51).BoundingBox{142.5 89.5 24.0 26.0} graindata(51).Centroid{155.3953 102.1791} Create a vector which holds just one property for each object allgrains = [graindata.Area]; whos
19
Statistical Properties of Objects max(allgrains) { 695 } Return the component label of a grain size biggrain = find(allgrains == 695) { 68 } Mean grain size mean(allgrains) { 249 } Histogram (#bins) hist(allgrains, 20)
20
Statistical Properties of Objects (cont.)
21
Storage Classes double (64-bit), uint8 (8-bit), and uint16 (16-bit) Converting (rescale or offset) double im2double (automatic rescale and offsetting) RGB2 = im2uint8(RGB1); im2uint16 imapprox (reduce number of colors: indexed images)
22
Image Types Index Data 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)
23
Converting Image Types dither gray2ind grayslice im2bw ind2gray ind2rgb mat2gray rgb2gray rgb2ind
24
Multiframe Image Arrays Same size, #planes, colormap Store separate images into one multiframe array A = cat(4, A1, A2, A3, A4, A5) Extract frames from a multiframe array FRM3 = MULTI(:, :, :, 3) Display a frame imshow(MULTI(:, :, :, 7))
25
Image Arithmetic imabsdiff imadd imcomplement imdivide imlincomb immultiply imsubtract
26
Adding Images I = imread(‘rice.tif’); J = imread(‘cameraman.tif’); K = imadd(I, J); imshow(K) Brighten an image results saturation RGB = imread(‘flowers.tif’); RGB2 = imadd(RGB, 50); subplot(1, 2, 1); imshow(RGB); subplot(1, 2, 2); imshow(RGB2);
27
Adding Images (cont.)
29
Subtracting Images Background of a scene rice = imread(‘rice.tif’); background = imopen(rice, strel(‘disk’, 15)); rice2 = imsubtract(rice, background); imshow(rice), figure, imshow(rice2); Negative values imabsdiff
30
Subtracting Images (cont.)
31
Multiplying Images Scaling: multiply by a constant (brightens >1, darkens <1) Preserves relative contrast I = imread(‘moon.tif’); J = immultiply(I, 1.2); imshow(I); figure, imshow(J)
32
Multiplying Images (cont.)
33
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);
34
Dividing Images (cont.)
35
Coordinate Systems Pixel Coordinates Discrete unit (integer) (r, c) = (1, 1) Spatial Coordinates Continuous unit (x, y) = (0.5, 0.5) 123
36
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))
37
Spatial Transformations Map pixel locations in an input image to new locations in an output image Resizing Rotation Cropping
38
Resizing Images Change the size of an image I = imread(‘ic.tif’); J = imresize(I, 1.25); K = imresize(I, [100 150]); figure, imshow(J) figure, imshow(K)
39
Resizing Images (cont.)
40
Rotating Images Rotate an image by an angle in degrees I = imread(‘ic.tif’); J = imrotate(I, 35, ‘bilinear’); imshow(I) figure, imshow(J)
41
Rotating Images (cont.)
42
Cropping Images Extract a rectangular portion of an image imshow ic.tif I = imcrop;
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.