www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
Fundamentals
of
Matlab
Improve this with www.csie.ntnu.edu.tw/~violet/IP93/Chapter01.ppt
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
Image Formats
http://en.wikipedia.org/wiki/Image_formats
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
More Image Formats
• PPM(Portable Pixelmap) • PGM(Portable Graymap)
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
Displaying Images
f = imread(‘rose.tif’);
imshow(f);
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
Try this:
>> f = imread(“Image_Name.extension”);
>> imshow(f)
>> impixelinfo
>> size(f)
ans =
1024 1024
>> [M,N] = size(f);
>> whos f
Name Size Bytes Class Attributes
r 1024x1024 1048576 uint8
Displaying Images Info.
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
imfinfo (bubbles.jpg)
ans =
Filename: 'bubble.jpg'
FileModDate: '14-Jan-2008 17:08:08'
FileSize: 7904
Format: 'jpg'
FormatVersion: ‘ '
Width: 720
Height: 688
BitDepth: 8
ColorType: 'grayscale'
FormatSignature: ‘ '
NumberOfSamples: 1
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Comment: {}
Displaying Images Info.
Try this
>> K imfinfo('bubbles.jpg');
>> K.FileSize
ans =
7904
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
Syntax:
variable=imread(“Image_name.extension’);
Imwrite(variable,”Name.ext”);
Try This:
Step1:Read
>> b = imread(‘bubbles.tif’);
Step2:Write
>> imwrite(b,'bubbles.png');
>> imwrite(b,'bubbles.jpg');
>> imwrite(b,'bubbles', 'jpg');
Writing Images
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
Data Classes
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
Converting Between
Data Classes
Example: Suppose
A is an array of class uint8
C is an array of class double
B = double(A)
D = uint8(C)
Syntax: B = data_class_name(A)
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
Converting Between
Image Classes & Types
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
Converting Between
Image Classes & Types
Example: Consider the following 2 X 2 image f of class double:
Try This:
>> f = [-0.5 0.5; 0.75 1.5]
f =
-0.5 0.5
0.75 1.5
>> g = im2uint8(f)
g =
0 128
191 255
>> h = uint8([25 50; 128 200]);
>> g = im2double(h);
g =
0.0980 0.1961
0.4706 0.7843
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
Array Indexing
Example:
>> v = [1 3 5 7 9]
v =
1 3 5 7 9
>> v(2) “2nd
index”
ans =
3
>> v(2:4) “2nd
to 4th
index”
ans =
3 5 7
Guess the output of: v(3:end) v(1:2:end) v(end:-2:1)
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
Matrix Indexing
Example:
>> A = [1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> A(2, 3)
ans =
6
>> R2 = A(2, :)
R2 =
4 5 6
Guess the output of: A(1:2, 1:3) A(end, end-2) A(:, 3)
Try this:
C3 = A(:, 3)
C3 =
3
6
9
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
Standard Arrays
>> A = 5*ones(3, 3)
A =
5 5 5
5 5 5
5 5 5
>> magic(3)
ans =
8 1 6
3 5 7
4 9 2
>> B = rand(2, 4)
B =
0.2311 0.4860 0.7621 0.0185
0.6068 0.8913 0.4565 0.8214
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
Operators
Example:
f =
1 2
3 4
>> v = f(:) “All column in to one column”
v =
1
3
2
4
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
Arithmetic Operations
Example:
>> imshow(imcomplement(f))
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
Relational Operators
Example:
>> A = [1 2; 3 4]
A =
1 2
3 4
>> B = [0 2; 3 5;]
B =
0 2
3 5
>> A>=B
ans =
1 1
1 0
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
Logical Operators and Functions
www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins
Digital Image Processing Using MATLAB®
Flow Control Statements

Digital image processing using matlab (fundamentals)

  • 1.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® Fundamentals of Matlab Improve this with www.csie.ntnu.edu.tw/~violet/IP93/Chapter01.ppt
  • 2.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB®
  • 3.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® Image Formats http://en.wikipedia.org/wiki/Image_formats
  • 4.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® More Image Formats • PPM(Portable Pixelmap) • PGM(Portable Graymap)
  • 5.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® Displaying Images f = imread(‘rose.tif’); imshow(f);
  • 6.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® Try this: >> f = imread(“Image_Name.extension”); >> imshow(f) >> impixelinfo >> size(f) ans = 1024 1024 >> [M,N] = size(f); >> whos f Name Size Bytes Class Attributes r 1024x1024 1048576 uint8 Displaying Images Info.
  • 7.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® imfinfo (bubbles.jpg) ans = Filename: 'bubble.jpg' FileModDate: '14-Jan-2008 17:08:08' FileSize: 7904 Format: 'jpg' FormatVersion: ‘ ' Width: 720 Height: 688 BitDepth: 8 ColorType: 'grayscale' FormatSignature: ‘ ' NumberOfSamples: 1 CodingMethod: 'Huffman' CodingProcess: 'Sequential' Comment: {} Displaying Images Info. Try this >> K imfinfo('bubbles.jpg'); >> K.FileSize ans = 7904
  • 8.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® Syntax: variable=imread(“Image_name.extension’); Imwrite(variable,”Name.ext”); Try This: Step1:Read >> b = imread(‘bubbles.tif’); Step2:Write >> imwrite(b,'bubbles.png'); >> imwrite(b,'bubbles.jpg'); >> imwrite(b,'bubbles', 'jpg'); Writing Images
  • 9.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® Data Classes
  • 10.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® Converting Between Data Classes Example: Suppose A is an array of class uint8 C is an array of class double B = double(A) D = uint8(C) Syntax: B = data_class_name(A)
  • 11.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® Converting Between Image Classes & Types
  • 12.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® Converting Between Image Classes & Types Example: Consider the following 2 X 2 image f of class double: Try This: >> f = [-0.5 0.5; 0.75 1.5] f = -0.5 0.5 0.75 1.5 >> g = im2uint8(f) g = 0 128 191 255 >> h = uint8([25 50; 128 200]); >> g = im2double(h); g = 0.0980 0.1961 0.4706 0.7843
  • 13.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® Array Indexing Example: >> v = [1 3 5 7 9] v = 1 3 5 7 9 >> v(2) “2nd index” ans = 3 >> v(2:4) “2nd to 4th index” ans = 3 5 7 Guess the output of: v(3:end) v(1:2:end) v(end:-2:1)
  • 14.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® Matrix Indexing Example: >> A = [1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9 >> A(2, 3) ans = 6 >> R2 = A(2, :) R2 = 4 5 6 Guess the output of: A(1:2, 1:3) A(end, end-2) A(:, 3) Try this: C3 = A(:, 3) C3 = 3 6 9
  • 15.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® Standard Arrays >> A = 5*ones(3, 3) A = 5 5 5 5 5 5 5 5 5 >> magic(3) ans = 8 1 6 3 5 7 4 9 2 >> B = rand(2, 4) B = 0.2311 0.4860 0.7621 0.0185 0.6068 0.8913 0.4565 0.8214
  • 16.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB®
  • 17.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® Operators Example: f = 1 2 3 4 >> v = f(:) “All column in to one column” v = 1 3 2 4
  • 18.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® Arithmetic Operations Example: >> imshow(imcomplement(f))
  • 19.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® Relational Operators Example: >> A = [1 2; 3 4] A = 1 2 3 4 >> B = [0 2; 3 5;] B = 0 2 3 5 >> A>=B ans = 1 1 1 0
  • 20.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® Logical Operators and Functions
  • 21.
    www.imageprocessingbook.com© 2004 R.C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB® Flow Control Statements