0
MATLAB
Image Processing Toolbox
Introduction
 Collection of functions (MATLAB
files) that supports a wide range of image
processing operations
 Document...
Read an Image
 Read in an image
 Validates the graphic format
(bmp, hdf, jpeg, pcx, png, tiff, xwd)

 Store it in an ar...
Display an Image
imshow(I)
Check the Image in Memory
 < Name, Size, Bytes, Class >
whos
Name
Size
Bytes Class
ans 291x240
69840 uint8 array
Grand to...
Histogram Equalization
 Histogram: distribution of intensities
figure, imhist(I)

 Equalize Image (contrast)
I2 = histeq...
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’, ‘B...
Morphological Opening
 Remove objects that cannot completely
contain a structuring element
 Estimate background illumina...
Morphological Opening
(cont.)
Subtract Images
 Create a more uniform background
I2 = 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...
Apply Thresholding
to the Image
 Create a binary thresholded image
1.

2.

Compute a threshold to convert the intensity
i...
Apply Thresholding
to the Image (cont.)
Labeling Connected
Components
 Determine the number of objects in the
image
 Accuracy

(size of objects, approximated ba...
Select and Display
Pixels in a Region
 Interactive selection
grain = imcrop(labeled)

 Colormap creation function
RGB_la...
Object Properties
 Measure object or region properties

graindata = regionprops(labeled, ‘basic’)
graindata(51).Area
{296...
Statistical Properties
of Objects
max(allgrains)

{ 695 }

 Return the component label of a grain size
biggrain = find(al...
Statistical Properties
of Objects (cont.)
Storage Classes
 double (64-bit), uint8 (8-bit), and uint16
(16-bit)
 Converting (rescale or offset)
double
im2double (a...
Image Types
 Index

 Data

matrix (uint8, uint16, double)
 Colormap matrix (m x 3 array of double [0 1])

 Intensity (...
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
array
A = cat(4, A1, A2...
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...
Adding Images (cont.)
Adding Images (cont.)
Subtracting Images
 Background of a scene

rice = imread(‘rice.tif’);
background = imopen(rice, strel(‘disk’, 15));
rice2...
Subtracting Images (cont.)
Multiplying Images
 Scaling: multiply by a constant
 (brightens

>1, darkens <1)

 Preserves relative contrast
I = imre...
Multiplying Images (cont.)
Dividing Images (Ratioing)
I = imread(‘rice.tif’);
background = imopen(I, strel(‘disk’, 15));
Ip = imdivide(I, background)...
Dividing Images (cont.)
Coordinate Systems
 Pixel Coordinates




Discrete unit (integer)
(r, c)
 = (1, 1)
123

 Spatial Coordinates




...
Non-default Spatial
Coordinate System
A = magic(5);
x = [19.5 23.5];
y = [8.0 12.0];
image(A, ‘xData’, x, ‘yData’, y), axi...
Spatial Transformations
 Map pixel locations in an input image to
new locations in an output image




Resizing
Rotati...
Resizing Images
 Change the size of an image
I = imread(‘ic.tif’);
J = imresize(I, 1.25);
K = imresize(I, [100 150]);
fig...
Resizing Images (cont.)
Rotating Images
 Rotate an image by an angle in degrees
I = imread(‘ic.tif’);
J = imrotate(I, 35, ‘bilinear’);
imshow(I)
...
Rotating Images (cont.)
Cropping Images
 Extract a rectangular portion of an image
imshow ic.tif
I = imcrop;
Upcoming SlideShare
Loading in...5
×

Matlab

1,484

Published on

Published in: Technology, Art & Photos
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,484
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
156
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Matlab"

  1. 1. MATLAB Image Processing Toolbox
  2. 2. Introduction  Collection of functions (MATLAB files) that supports a wide range of image processing operations  Documentation  www.mathworks.com
  3. 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. 4. Display an Image imshow(I)
  5. 5. Check the Image in Memory  < Name, Size, Bytes, Class > whos Name Size Bytes Class ans 291x240 69840 uint8 array Grand total is 69840 elements using 69840 bytes uint8 uint16 double [0, 255] [0, 65535] [0, 1]
  6. 6. Histogram Equalization  Histogram: distribution of intensities figure, imhist(I)  Equalize Image (contrast) I2 = histeq(I); figure, imshow(I2) figure, imhist(I2)
  7. 7. Histogram Equalization (cont.)
  8. 8. Histogram Equalization (cont.)
  9. 9. Write the Image  Validates the extension  Writes the image to disk imwrite(I2, ’pout2.png’); imwrite(I2, ‘pout2.png’, ‘BitDepth’, 4);
  10. 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. 11. Morphological Opening (cont.)
  12. 12. Subtract Images  Create a more uniform background I2 = imsubtract(I, background); figure, imshow(I2)
  13. 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. 14. Apply Thresholding to the Image  Create a binary thresholded image 1. 2. Compute a threshold to convert the intensity image to binary Perform thresholding creating a logical matrix (binary image) level = graythresh(I3); bw = im2bw(I3, level); figure, imshow(bw)
  15. 15. Apply Thresholding to the Image (cont.)
  16. 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. 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. 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. 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)  Histogram (#bins) hist(allgrains, 20) { 249 }
  20. 20. Statistical Properties of Objects (cont.)
  21. 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. 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. 23. Converting Image Types      dither gray2ind grayslice im2bw ind2gray     ind2rgb mat2gray rgb2gray rgb2ind
  24. 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. 25. Image Arithmetic     imabsdiff imadd imcomplement imdivide  imlincomb  immultiply  imsubtract
  26. 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. 27. Adding Images (cont.)
  28. 28. Adding Images (cont.)
  29. 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. 30. Subtracting Images (cont.)
  31. 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. 32. Multiplying Images (cont.)
  33. 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. 34. Dividing Images (cont.)
  35. 35. Coordinate Systems  Pixel Coordinates    Discrete unit (integer) (r, c)  = (1, 1) 123  Spatial Coordinates    Continuous unit (x, y) = (0.5, 0.5)
  36. 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. 37. Spatial Transformations  Map pixel locations in an input image to new locations in an output image    Resizing Rotation Cropping
  38. 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. 39. Resizing Images (cont.)
  40. 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. 41. Rotating Images (cont.)
  42. 42. Cropping Images  Extract a rectangular portion of an image imshow ic.tif I = imcrop;
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×