Your SlideShare is downloading. ×
Matlab
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Matlab

1,401
views

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,401
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
153
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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  < 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. 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.)
  • 8. 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. 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. 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)  Histogram (#bins) hist(allgrains, 20) { 249 }
  • 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.)
  • 28. 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) 123  Spatial Coordinates    Continuous unit (x, y) = (0.5, 0.5)
  • 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;