Vous êtes sur la page 1sur 18

Digital Image Processing - MATLAB

Page 1 of 18

Introduction to image processing in Matlab


by Kristian Sandberg, Department of Applied Mathematics, University of Colorado at Boulder

Introduction
This worksheet is an introduction on how to handle images in Matlab. When working with images in Matlab, there are many things to keep in mind such as loading an image, using the right format, saving the data as different data types, how to display an image, conversion between different image formats, etc. This worksheet presents some of the commands designed for these operations. Most of these commands require you to have the Image processing tool box installed with Matlab. To find out if it is installed, type ver at the Matlab prompt. This gives you a list of what tool boxes that are installed on your system. For further reference on image handling in Matlab you are recommended to use Matlab's help browser. There is an extensive (and quite good) on-line manual for the Image processing tool box that you can access via Matlab's help browser. The first sections of this worksheet are quite heavy. The only way to understand how the presented commands work, is to carefully work through the examples given at the end of the worksheet. Once you can get these examples to work, experiment on your own using your favourite image!

Fundamentals
A digital image is composed of pixels which can be thought of as small dots on the screen. A digital image is an instruction of how to color each pixel. We will see in detail later on how this is done in practice. A typical size of an image is 512-by-512 pixels. Later on in the course you will see that it is convenient to let the dimensions of the image to be a power of 2. For example, 29=512. In the general case we say that an image is of size m-by-n if it is composed of m pixels in the vertical direction and n pixels in the horizontal direction. Let us say that we have an image on the format 512-by-1024 pixels. This means that the data for the image must contain information about 524288 pixels, which requires a lot of memory! Hence, compressing images is essential for efficient image processing. You will later on see how Fourier analysis and Wavelet analysis can help us to compress an image significantly. There are also a few "computer scientific" tricks (for example entropy coding) to reduce the amount of data required to store an image.

Image formats supported by Matlab


The following image formats are supported by Matlab: BMP

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATL...

09/04/2011

Digital Image Processing - MATLAB

Page 2 of 18

HDF JPEG PCX TIFF XWB Most images you find on the Internet are JPEG-images which is the name for one of the most widely used compression standards for images. If you have stored an image you can usually see from the suffix what format it is stored in. For example, an image named myimage.jpg is stored in the JPEG format and we will see later on that we can load an image of this format into Matlab.

Working formats in Matlab


If an image is stored as a JPEG-image on your disc we first read it into Matlab. However, in order to start working with an image, for example perform a wavelet transform on the image, we must convert it into a different format. This section explains four common formats. Intensity image (gray scale image) This is the equivalent to a "gray scale image" and this is the image we will mostly work with in this course. It represents an image as a matrix where every element has a value corresponding to how bright/dark the pixel at the corresponding position should be colored. There are two ways to represent the number that represents the brightness of the pixel: The double class (or data type). This assigns a floating number ("a number with decimals") between 0 and 1 to each pixel. The value 0 corresponds to black and the value 1 corresponds to white. The other class is called uint8 which assigns an integer between 0 and 255 to represent the brightness of a pixel. The value 0 corresponds to black and 255 to white. The class uint8 only requires roughly 1/8 of the storage compared to the class double. On the other hand, many mathematical functions can only be applied to the double class. We will see later how to convert between double and uint8. Binary image This image format also stores an image as a matrix but can only color a pixel black or white (and nothing in between). It assigns a 0 for black and a 1 for white. Indexed image This is a practical way of representing color images. (In this course we will mostly work with gray scale images but once you have learned how to work with a gray scale image you will also know the principle how to work with color images.) An indexed image stores an image as two matrices. The first matrix has the same size as the image and one number for each pixel. The second matrix is called the color map and its size may be different from the image. The numbers in the first matrix is an instruction of what number to use in the color map matrix. RGB image

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATLA... 09/04/2011

Digital Image Processing - MATLAB

Page 3 of 18

This is another format for color images. It represents an image with three matrices of sizes matching the image format. Each matrix corresponds to one of the colors red, green or blue and gives an instruction of how much of each of these colors a certain pixel should use. Multiframe image In some applications we want to study a sequence of images. This is very common in biological and medical imaging where you might study a sequence of slices of a cell. For these cases, the multiframe format is a convenient way of working with a sequence of images. In case you choose to work with biological imaging later on in this course, you may use this format. How to convert between different formats The following table shows how to convert between the different formats given above. All these commands require the Image processing tool box! Image format conversion (Within the parenthesis you type the name of the image you wish to convert.) Operation: Matlab command: Convert between intensity/indexed/RGB format to binary format. dither() Convert between intensity format to indexed format. Convert between indexed format to intensity format. Convert between indexed format to RGB format. Convert a regular matrix to intensity format by scaling. Convert between RGB format to intensity format. Convert between RGB format to indexed format.
gray2ind() ind2gray() ind2rgb() mat2gray() rgb2gray() rgb2ind()

The command mat2gray is useful if you have a matrix representing an image but the values representing the gray scale range between, let's say, 0 and 1000. The command mat2gray automatically re scales all entries so that they fall within 0 and 255 (if you use the uint8 class) or 0 and 1 (if you use the double class).

How to convert between double and uint8


When you store an image, you should store it as a uint8 image since this requires far less memory than double. When you are processing an image (that is performing mathematical operations on an image) you should convert it into a double. Converting back and forth between these classes is easy.
I=im2double(I);

converts an image named I from uint8 to double.


I=im2uint8(I);

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATLA... 09/04/2011

Digital Image Processing - MATLAB

Page 4 of 18

converts an image named I from double to uint8.

How to read files


When you encounter an image you want to work with, it is usually in form of a file (for example, if you down load an image from the web, it is usually stored as a JPEG-file). Once we are done processing an image, we may want to write it back to a JPEG-file so that we can, for example, post the processed image on the web. This is done using the imread and imwrite commands. These commands require the Image processing tool box! Reading and writing image files Operation: Read an image. (Within the parenthesis you type the name of the image file you wish to read. Put the file name within single quotes ' '.) Write an image to a file. (As the first argument within the parenthesis you type the name of the image you have worked with. As a second argument within the parenthesis you type the name of the file and format that you want to write the image to. Put the file name within single quotes ' '.) Matlab command:
imread()

imwrite( , )

Make sure to use semi-colon ; after these commands, otherwise you will get LOTS OF number scrolling on you screen... The commands imread and imwrite support the formats given in the section "Image formats supported by Matlab" above.

Loading and saving variables in Matlab


This section explains how to load and save variables in Matlab. Once you have read a file, you probably convert it into an intensity image (a matrix) and work with this matrix. Once you are done you may want to save the matrix representing the image in order to continue to work with this matrix at another time. This is easily done using the commands save and load. Note that save and load are commonly used Matlab commands, and works independently of what tool boxes that are installed. Loading and saving variables Operation: Matlab command: Save the variable X . save X Load the variable X . load X

Examples
In the first example we will down load an image from the web, read it into Matlab, investigate its format

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATLA... 09/04/2011

Digital Image Processing - MATLAB

Page 5 of 18

and save the matrix representing the image. Example 1. Down load the following image (by clicking on the image using the right mouse button) and save the file as cell1.jpg.

This is an image of a cell taken by an electron microscope at the Department of Molecular, Cellular and Developmental Biology at CU.

Now open Matla and make sure you are in the same directory as your stored file. (You can check what files your directory contains by typing ls at the Matlab prompt. You change directory using the command cd.) Now type in the following commands and see what each command does. (Of course, you do not have to type in the comments given in the code after the % signs.)
I=imread('cell1.jpg'); % Load the image file and store it as the variable I. whos % Type "whos" in order to find out the size and class of all stored variables. save I % Save the variable I.

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATLA... 09/04/2011

Digital Image Processing - MATLAB

Page 6 of 18

ls % List the files in your directory. % There should now be a file named "I.mat" in you directory % containing your variable I.

Note that all variables that you save in Matlab usually get the suffix .mat. Next we will see that we can display an image using the command imshow. This command requires the image processing tool box. Commands for displaying images will be explained in more detail in the section "How to display images in Matlab" below.
clear % Clear Matlab's memory. load I % Load the variable I that we saved above. whos % Check that it was indeed loaded. imshow(I) % Display the image I=im2double(I); % Convert the variable into double. whos % Check that the variable indeed was converted into double % The next procedure cuts out the upper left corner of the image % and stores the reduced image as Ired. for i=1:256 for j=1:256 Ired(i,j)=I(i,j); end end whos % Check what variables you now have stored. imshow(Ired) % Display the reduced image.

Example 2 down load an image. Save the image as pic-home.jpg Next, do the following in Matlab. (Make sure you are in the same directory as your image file).

clear A=imread('pic-home.jpg');

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATLA... 09/04/2011

Digital Image Processing - MATLAB

Page 7 of 18

whos imshow(A)

Note that when you typed whos it probably said that the size was 300x504x3. This means that the image was loaded as an RGB image (see the section "RGB image above"). However, in this course we will mostly work with gray scale images, so let us convert it into a gray scale (or "intensity") image.

A=rgb2gray(A); % Convert to gray scale whos imshow(A)

Now the size indicates that our image is nothing else than a regular matrix. Note: In other cases when you down load a color image and type whos you might see that there is one matrix corresponding to the image size and one matrix called map stored in Matlab. In that case, you have loaded an indexed image (see section above). In order to convert the indexed image into an intensity (gray scale) image, use the ind2gray command described in the section "How to convert between different formats" above.

How to display an image in Matlab


Here are a couple of basic Matlab commands (do not require any tool box) for displaying an image. Displaying an image given on matrix form Operation: Display an image represented as the matrix X. Matlab command:
imagesc(X)

Adjust the brightness. s is a parameter such that brighten(s) -1<s<0 gives a darker image, 0<s<1 gives a brighter image. Change the colors to gray.
colormap(gray)

Sometimes your image may not be displayed in gray scale even though you might have converted it into a gray scale image. You can then use the command colormap(gray) to "force" Matlab to use a gray scale when displaying an image. If you are using Matlab with an Image processing tool box installed, I recommend you to use the command imshow to display an image. Displaying an image given on matrix form (with image processing tool box)

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATLA... 09/04/2011

Digital Image Processing - MATLAB

Page 8 of 18

Operation: Display an image represented as the matrix X. Turn off the zoom function.

Matlab command:
imshow(X) zoom off

Zoom in (using the left and right mouse button). zoom on

Digital Image Processing using Matlab


MATLAB Images
Two-dimensional arrays. Use row-column indexing. Given image p with M rows and N columns, a pixel value in the array is indicated as p(m,n), where 1mM is the row index from top-to-bottom and 1nN is the column index from left-to-right. Note, this is different than class lectures in which indexing will be from 0.

Reading Image Files


The command to read an image from file filename and store it in matrix variable p is:
p = imread('filename');

The filename may be an absolute pathname or a relative pathname from the current working directory. The command iminfo can be used to retrieve information about image files:
iminfo('filename')

The information can be stored as a structure variable from which values can be retrieved:
pinfo = iminfo('filename'); pinfo.Width

Omitting the ';' at the end of the command causes the value to be printed to the command window.

Writing Image Files


The command to write an image from variable p and store it in file filename is:
imwrite(p, 'filename');

The filename may be an absolute pathname or a relative pathname from the current working directory.

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATLA... 09/04/2011

Digital Image Processing - MATLAB

Page 9 of 18

The file format can be specified in the file name or in an additional parameter. Other parameters, such as image quality and resolution, may be available for the different file types.

Displaying Image Files


The command to display the image from variable p to a figure window is:
imshow(p);

An additional parameter may be used to set the number of display levels or set the range of display levels. Various controls, such as dynamic display of index and value for the cursor position, are available in the image display tool. The figure command can be used to create a new current figure for the display:
figure, imshow(p);

Printing Image Displays


A figure with an image can be printed from the pull-down menu or with the command:
print -fnumber -dformat -rresolution filename

where number is the figure number, format is the file format (if printed to a file), and resolution is the resolution. If the filename is omitted, the figure is printed to the default printer.

Image Metadata
Various commands provide information about a variable image.
size(p) whos(p)

Image Types and Data Classes


MATLAB supports intensity images (including binary images), indexed images, and color images. Most of this class will involve intensity images, in which each pixel is a scalar measure of light by a detector. Binary images have only values 0 or 1 for 'no light' or 'light'. Binary pixel values can be represented with one bit and packed into bytes. Intensity images with more precision can use integer data of various lengths or floating point data of various lengths.

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATLA... 09/04/2011

Digital Image Processing - MATLAB

Page 10 of 18

Typically, we will use uint8 (unsigned 8-bit integers) or double (double-precision floating point numbers). MATLAB has functions for converting the data types of images. It is important to understand the mathematics of these conversions.

Image Indexing
The value of a single pixel in an image is indexed as:
p(m,n)

Multiple pixels can be indexed with a vector as:


p([1 3],1)

which selects pixels p(1,1) and p(3,1). Multiple pixels also can be indexed using a range. The first row is all pixels with row index 1 and any column index:
p(1,1:N)

The notation 1:N indicates all indexes from 1 to N. The notation can contain a step value, e.g., 1::2:5 indicates indexes 1, 3, 5. The keyword end can be used to indicate the last index. The range operator by itself, :, indicates the full range, from 1 to end either of a dimension or of the whole matrix.

Standard Arrays
MATLAB has standard arrays for creating arrays of a defined size with zeros, ones, true, false, or random values. For example:
p = zeros(M,N);

Builtin Functions
MATLAB has many useful builtin functions listed in Appendix A of the text book. For example:
max(p(:))

Gives the largest value in the matrix. Note, given matrix p, max(p) treats the matrix as an array of column vectors and returns a vector of the largest value in each column.

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATLA... 09/04/2011

Digital Image Processing - MATLAB

Page 11 of 18

Operators
MATLAB has builtin arithmetic, relational, and logical operators. Two images can be added so that the output value at each pixel is the sum of the values of the corresponding input pixels. For example:
r = p+q;

which also can be written:


r = plus(p,q);

The operands can be scalars, vectors, or matrices. The array and matrix arithmetic operations are done in double precision floating point. MATLAB also provides operations which support integer arithmetic, e.g., imadd and immultiply, For multiplcation and some other operations, MATLAB has two types of arithmetic operations: array arithmetic operations which perform the operation on corresponding pixels of the input images and matrix arithmetic operations which perform matrix arithmetic. Array multiplication is: r = p.*q; or
r = times(p,q);

Matrix multiplication is: r = p*q; or


r = mtimes(p,q);

Programming
MATLAB programs are stored in M-files. The function definition line in an m file provides the function name, inputs and outputs:
function [ outputs ] = name( inputs )

For example:
function [ little, big ] = range(p)

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATLA... 09/04/2011

Digital Image Processing - MATLAB

Page 12 of 18

Comments with the H1 line and help text follow. For example:
% RANGE returns a vector with the smallest and largest values of an image. % [ little, big ] = RANGE(p) sets little and big to the smallest and % largest values of image p.

The body of the function performs operations and sets return values. For example:
little = min(p(:)); big = max(p(:));

A function defined in an M-file in the working path can be called from another program. For example:
[ smallest, largest ] = range(q);

Example
function [p, pmax, pmin, pn] = improd(f, g) %IMPROD Computes the product of two images % [p, pmax, pmin, pn] = improd(f, g) outputs the pointwise product of % f and g, the maximum and minimum values of the product, and a normalized % image of the product. % Conversion with double maintains values (unlike imdouble) fd = double(f); gd = double(g); % Pointwise array product (instead of matrix multiplication *) p = fd.*gd; % Range of product pmax = max(p(:)); pmin = min(p(:)); % Normalized product pn = mat2gray(p);

Relational and Logical Operators


Relational operators: <, <=, >, >=, ==, and ~=. Logical operators: &, |, and ~. Logical functions: xor(), all(), and any(). Operate on arrays, vectors, and matrices.

Flow Control
If, else, elseif
if expression1 statements1 elseif expression2 statements2 else statements3

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATLA... 09/04/2011

Digital Image Processing - MATLAB

Page 13 of 18

end

For
for index = start:increment:end statements end

Increment is optional, default 1. While


while expression statements end

Break, continue Break terminates for or while loop. Continue skips to next interation of for or while loop. Switch
switch switch_expression case case_expression1 statements1 case {case_expression2a, case_expression2b, ... } statements2 otherwise statements end

Optimization and Readability with Preallocation and Vectorization


Dynamic array and iteration:
for m = 0:M-1 for n = 0:N-1 p(m-1,n-1) = m*m + n*n; end; end;

Preallocation and vectorization:


[R, C] = meshgrid(M,N); p = R.^2 + C.^2;

Interactive I/O
Output:
disp(argument)

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATLA... 09/04/2011

Digital Image Processing - MATLAB

Page 14 of 18

Input single number, string in quotes, vector, matrix, etc.:


variable = input('prompt')

Input string with blanks and commas:


variable = input('prompt', 's')

Strings can be converted to numbers with str2num().

Cell Arrays and Structures


Cell arrays may have mixed data types in different cells. Cells arrays are declared and accessed with curly braces '{}':
c = { 'gauss', [1 0; 0 1], 3}; c{2}

Structures allow associate field names:


S.char_string = 'gauss'; S.matrix = [1 0; 0 1]; S.scalar = 3; S.matrix

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Introducing Matlab %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (1) Help and basics % The symbol "%" is used in front of a comment. % To get help type "help" (will give list of help topics) or "help topic" % If you don't know the exact name of the topic or command you are looking for, % type "lookfor keyword" (e.g., "lookfor regression") % When writing a long matlab statement that exceeds a single row use ... % to continue statement to next row. % When using the command line, a ";" at the end means matlab will not % display the result. If ";" is omitted then matlab will display result. % Use the up-arrow to recall commands without retyping them (and down % arrow to go forward in commands). % % % % % Other commands borrowed from emacs and/or tcsh: C-a moves to beginning of line (C-e for end), C-f moves forward a character (C-b moves back), C-d deletes a character, C-k deletes the line to the right of the cursor, C-p goes back through the command history and C-n goes forward (equivalent to up and down arrows).

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATLA... 09/04/2011

Digital Image Processing - MATLAB

Page 15 of 18

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (2) Objects in matlab -- the basic objects in matlab are scalars, % vectors, and matrices... N v v v v v v m m v m v = = = = 5 [1 0 0] [1;2;3] v' a scalar a row vector a column vector transpose a vector (row to column or column to row) % a vector in a specified range: % [start:stepsize:end] % empty vector % a matrix: 1ST parameter is ROWS % 2ND parameter is COLS % a matrix of zeros % a matrix of ones % identity matrix % rand matrix (see also randn) % read data from a file: % create a file 'matrix_data' containing: % 2 3 4 % 5 6 7 % 1 2 3 % % % %

= [1:.5:3] = pi*[-4:4]/4 = [] = [1 2 3; 4 5 6] = = = = zeros(2,3) ones(1,3) eye(3) rand(3,1)

load matrix_data

matrix_data v v(3) m m(1,3) m(2,:) m(:,1) size(m) size(m,1) size(m,2) m1 who whos = zeros(size(m)) = [1 2 3];

% access a vector element % vector(number)

= [1 2 3; 4 5 6]

% access a matrix element % matrix(rownumber, columnnumber) % access a matrix row (2nd row) % access a matrix column (1st row) % size of a matrix % number rows % number of columns % create a new matrix with size of m % list of variables % list/size/type of variables

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (3) Simple operations on vectors and matrices %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (A) Pointwise (element by element) Operations: % addition of vectors/matrices and multiplication by a scalar % are done "element by element" a = [1 2 3 4]; % vector

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATLA... 09/04/2011

Digital Image Processing - MATLAB

Page 16 of 18

2 a b a a a a a

* a / 4 + b - b .^ 2 .* b ./ b

= [5 6 7 8];

% % % % % % % %

scalar multiplication scalar multiplication vector pointwise vector addition pointwise vector addition pointise vector squaring (note .) pointwise vector multiply (note .) pointwise vector multiply (note .)

log( [1 2 3 4] ) round( [1.5 2; 2.2 3.1] )

% pointwise arithmetic operation % pointwise arithmetic operation

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (B) Vector Operations (no for loops needed) % Built-in matlab functions operate on vectors, if a matrix is given, % then the function operates on each column of the matrix a = [1 4 6 3] sum(a) mean(a) var(a) std(a) max(a) a = [1 2 3; 4 5 6] mean(a) max(a) max(max(a)) max(a(:)) %%%%%%%%%%%%%%%%%%%%%%%% % (C) Matrix Operations: [1 2 3] * [4 5 6]' % row vector 1x3 times column vector 3x1 % results in single number, also % known as dot product or inner product % column vector 3x1 times row vector 1x3 % results in 3x3 matrix, also % known as outer product % 3x2 matrix % 2x4 matrix % 3x4 matrix % % % % 3 x 2 matrix 3 x 1 vector matrix multiply matrix multiply % % % % % % vector sum of vector elements mean of vector elements variance standard deviation maximum

% matrix % mean of each column % max of each column % to obtain max of matrix % or...

[1 2 3]' * [4 5 6]

a b c

= rand(3,2) = rand(2,4) = a * b

a = [1 2; 3 4; 5 6] b = [5 6 7]; b * a a' * b'

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %(4) Saving your work save mysession save mysession a b % creates session.mat with all variables % save only variables a and b

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATLA... 09/04/2011

Digital Image Processing - MATLAB

Page 17 of 18

clear all clear a b load mysession a b

% clear all variables % clear variables a and b % load session

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %(5) Relations and control statements % Example: given a vector v, create a new vector with values equal to % v if they are greater than 0, and equal to 0 if they less than or % equal to 0. v = [3 5 -2 5 -1 0] u = zeros( size(v) ); for i = 1:size(v,2) if( v(i) > 0 ) u(i) = v(i); end end u v u2 ind u2(ind) = = = = [3 5 -2 5 -1 0] zeros( size(v) ); find( v>0 ) v( ind ) % 1: FOR LOOPS % initialize

% 2: NO FOR LOOPS % initialize % index into >0 elements

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %(6) Creating functions using m-files: % Functions in matlab are written in m-files. Create a file called % 'thres.m' In this file put the following: function res = thres( v ) u ind u(ind) = zeros( size(v) ); = find( v>0 ) = v( ind ) % initialize % index into >0 elements

v = [3 5 -2 5 -1 0] thres( v )

% call from command line

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %(7) Plotting x = [0 1 2 3 4]; plot( x ); plot( x, 2*x ); axis( [0 8 0 8] ); x = pi*[-24:24]/24; plot( x, sin(x) ); xlabel( 'radians' ); ylabel( 'sin value' ); title( 'dummy' ); % basic plotting

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATLA... 09/04/2011

Digital Image Processing - MATLAB

Page 18 of 18

gtext( 'put cursor where you want text and press mouse' ); figure; subplot( 1,2,1 ); plot( x, sin(x) ); axis square; subplot( 1,2,2 ); plot( x, 2.*cos(x) ); axis square; figure; plot( x,sin(x) ); hold on; plot (x, 2.*cos(x), '--' ); legend( 'sin', 'cos' ); hold off; figure; m = rand(64,64); imagesc(m); colormap gray; axis image axis off; % multiple functions in separate graphs

% multiple functions in single graph

% matrices as images

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %(8) Images im = imread( 'baboon.tif' ); im = double( im ); imagesc(im); colormap gray; axis image off; imagesc( uint8(im) ); axis image off; % load an image % convert to double in order to % perform mathematical operations % display a grayscale image, % autoscaling the intensities into % the full range % display a color image (must be % recast into unsigned int)

imwrite( uint8(im), 'test.tif' ); % write image to disk (tif format) imwrite( uint8(im), 'test.jpg', 'Quality', 80 ); % (jpeg format)

file://D:\courses\Digital Image Processing\lect\Introduction to Image Processing-MATLA... 09/04/2011

Vous aimerez peut-être aussi