0% found this document useful (0 votes)
20 views10 pages

Lab Manual 5

The document describes functions for adding noise, creating filters, and filtering images in MATLAB. It defines the imnoise, fspecial and imfilter functions and their usage for tasks like adding noise, creating filters, and filtering images with motions blurs, blurring and sharpening.

Uploaded by

Abdul Wahid
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views10 pages

Lab Manual 5

The document describes functions for adding noise, creating filters, and filtering images in MATLAB. It defines the imnoise, fspecial and imfilter functions and their usage for tasks like adding noise, creating filters, and filtering images with motions blurs, blurring and sharpening.

Uploaded by

Abdul Wahid
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 10

UNIVERSITY OF ENGINEERING AND TECHNOLOGY, TAXILA

FACULTY OF TELECOMMUNICATION AND INFORMATION ENGINEERING

SOFTWARE ENGINEERING DEPARTMENT

COMPUTER GRAPHICS
&
IMAGE PROCESSING

LAB MANUAL 5

PREPARED BY:: ENGR. ALI JAVED

Computer Graphics & Image Processing 7 th Term-SE UET Taxila


UNIVERSITY OF ENGINEERING AND TECHNOLOGY, TAXILA
FACULTY OF TELECOMMUNICATION AND INFORMATION ENGINEERING

SOFTWARE ENGINEERING DEPARTMENT

LINEAR & NON LINEAR SPATIAL FILTERS

LAB OBJECTIVE:
The objective of this lab is to understand & implement

1. Averaging Filtering

2. Median Filtering

3. Laplacian Filtering

4. imnoise, fspecial and imfilter functions

imnoise
Add noise to an image

Syntax
J = imnoise(I,type)
J = imnoise(I,type,parameters)

Description
J = imnoise(I,type) adds noise of a given type to the intensity image I. type is a string that can have
one of these values.

J = imnoise(I,type,parameters) accepts an algorithm type plus additional modifying parameters


particular to the type of algorithm chosen. If you omit these arguments, imnoise uses default values
for the parameters. Here are examples of the noise types and their parameters:
Computer Graphics & Image Processing 7 th Term-SE UET Taxila
UNIVERSITY OF ENGINEERING AND TECHNOLOGY, TAXILA
FACULTY OF TELECOMMUNICATION AND INFORMATION ENGINEERING

SOFTWARE ENGINEERING DEPARTMENT

J = imnoise(I,'gaussian',m,v) adds Gaussian white noise of mean m and variance v to the image I. The
default is zero mean noise with 0.01 variance.

J = imnoise(I,'localvar',V) adds zero-mean, Gaussian white noise of local variance V to the image I. V
is an array of the same size as I.

J = imnoise(I,'localvar',image_intensity,var) adds zero-mean, Gaussian noise to an image I, where the


local variance of the noise, var, is a function of the image intensity values in I. The image_intensity
and var arguments are vectors of the same size, and plot(image_intensity,var) plots the functional
relationship between noise variance and image intensity. The image_intensity vector must contain
normalized intensity values ranging from 0 to 1.

J = imnoise(I,'poisson') generates Poisson noise from the data instead of adding artificial noise to the
data. In order to respect Poisson statistics, the intensities of unit8 and uint16 images must correspond
to the number of photons (or any other quanta of information). Double-precision images are used
when the number of photons per pixel can be much larger than 65535 (but less than 10^12); the
intensity values vary between 0 and 1 and correspond to the number of photons divided by 10^12.

J = imnoise(I,'salt & pepper',d) adds salt and pepper noise to the image I, where d is the noise
density. This affects approximately d*prod(size(I)) pixels. The default is 0.05 noise density.

J = imnoise(I,'speckle',v) adds multiplicative noise to the image I, using the equation J = I+n*I, where
n is uniformly distributed random noise with mean 0 and variance v. The default for v is 0.04.

Class Support
I can be of class uint8, uint16, or double. The output image J is of the same class as I. If I has more
than two dimensions it is treated as a multidimensional intensity image and not as an RGB image.

Example

I = imread('eight.tif');
J = imnoise(I,'salt & pepper',0.02);
imshow(I)
figure, imshow(J)

Computer Graphics & Image Processing 7 th Term-SE UET Taxila


UNIVERSITY OF ENGINEERING AND TECHNOLOGY, TAXILA
FACULTY OF TELECOMMUNICATION AND INFORMATION ENGINEERING

SOFTWARE ENGINEERING DEPARTMENT

fspecial
Create 2-D special filters

Syntax

h = fspecial(type)
h = fspecial(type,parameters)

Computer Graphics & Image Processing 7 th Term-SE UET Taxila


UNIVERSITY OF ENGINEERING AND TECHNOLOGY, TAXILA
FACULTY OF TELECOMMUNICATION AND INFORMATION ENGINEERING

SOFTWARE ENGINEERING DEPARTMENT

Description

h = fspecial(type) creates a two-dimensional filter h of the specified type. fspecial returns h as a


correlation kernel, which is the appropriate form to use with imfilter. type is a string having one of
these values.

h = fspecial(type,parameters) accepts a filter type plus additional modifying parameters particular to


the type of filter chosen. If you omit these arguments, fspecial uses default values for the parameters.

The following list shows the syntax for each filter type. Where applicable, additional parameters are
also shown

h = fspecial('average',hsize) returns an averaging filter h of size hsize. The argument hsize can be a
vector specifying the number of rows and columns in h, or it can be a scalar, in which case h is a
square matrix. The default value for hsize is [3 3].

h = fspecial('disk',radius) returns a circular averaging filter (pillbox) within the square matrix of side
2*radius+1. The default radius is 5

h = fspecial('gaussian',hsize,sigma) returns a rotationally symmetric Gaussian lowpass filter of size


hsize with standard deviation sigma (positive). hsize can be a vector specifying the number of rows
and columns in h, or it can be a scalar, in which case h is a square matrix. The default value for hsize
is [3 3]; the default value for sigma is 0.5.

h = fspecial('laplacian',alpha) returns a 3-by-3 filter approximating the shape of the two-dimensional


Laplacian operator. The parameter alpha controls the shape of the Laplacian and must be in the range
0.0 to 1.0. The default value for alpha is 0.2.

h = fspecial('log',hsize,sigma) returns a rotationally symmetric Laplacian of Gaussian filter of size hsize


with standard deviation sigma (positive). hsize can be a vector specifying the number of rows and
columns in h, or it can be a scalar, in which case h is a square matrix. The default value for hsize is [5
5] and 0.5 for sigma.

h = fspecial('motion',len,theta) returns a filter to approximate, once convolved with an image, the


linear motion of a camera by len pixels, with an angle of theta degrees in a counterclockwise direction.

Computer Graphics & Image Processing 7 th Term-SE UET Taxila


UNIVERSITY OF ENGINEERING AND TECHNOLOGY, TAXILA
FACULTY OF TELECOMMUNICATION AND INFORMATION ENGINEERING

SOFTWARE ENGINEERING DEPARTMENT

The filter becomes a vector for horizontal and vertical motions. The default len is 9 and the default
theta is 0, which corresponds to a horizontal motion of nine pixels.

h = fspecial('prewitt') returns a 3-by-3 filter h (shown below) that emphasizes horizontal edges by
approximating a vertical gradient. If you need to emphasize vertical edges, transpose the filter h'.

[111 000 -1 -1 -1 ]

To find vertical edges, or for x-derivatives, use h'.

h = fspecial('sobel') returns a 3-by-3 filter h (shown below) that emphasizes horizontal edges using the
smoothing effect by approximating a vertical gradient. If you need to emphasize vertical edges,
transpose the filter h'.

[121 000 -1 -2 -1 ]

h = fspecial('unsharp',alpha) returns a 3-by-3 unsharp contrast enhancement filter. fspecial creates


the unsharp filter from the negative of the Laplacian filter with parameter alpha. alpha controls the
shape of the Laplacian and must be in the range 0.0 to 1.0. The default value for alpha is 0.2.

Class Support

h is of class double.

Example

I = imread('cameraman.tif');
subplot(2,2,1);
imshow(I); title('Original Image');

H = fspecial('motion',20,45);
MotionBlur = imfilter(I,H,'replicate');
subplot(2,2,2);
imshow(MotionBlur);title('Motion Blurred Image');

H = fspecial('disk',10);
blurred = imfilter(I,H,'replicate');
subplot(2,2,3);
imshow(blurred); title('Blurred Image');

H = fspecial('unsharp');
sharpened = imfilter(I,H,'replicate');
subplot(2,2,4);
imshow(sharpened); title('Sharpened Image');

Computer Graphics & Image Processing 7 th Term-SE UET Taxila


UNIVERSITY OF ENGINEERING AND TECHNOLOGY, TAXILA
FACULTY OF TELECOMMUNICATION AND INFORMATION ENGINEERING

SOFTWARE ENGINEERING DEPARTMENT

Computer Graphics & Image Processing 7 th Term-SE UET Taxila


UNIVERSITY OF ENGINEERING AND TECHNOLOGY, TAXILA
FACULTY OF TELECOMMUNICATION AND INFORMATION ENGINEERING

SOFTWARE ENGINEERING DEPARTMENT

imfilter
Multidimensional image filtering

Syntax

B = imfilter(A,H)
B = imfilter(A,H,option1,option2,...)

Description

B = imfilter(A,H) filters the multidimensional array A with the multidimensional filter H. The array A
can be a nonsparse numeric array of any class and dimension. The result B has the same size and
class as A.

Each element of the output B is computed using double-precision floating point. If A is an integer
array, then output elements that exceed the range of the integer type are truncated, and fractional
values are rounded.

B = imfilter(A,H,option1,option2,...) performs multidimensional filtering according to the specified


options. Option arguments can have the following values.

Examples

Read a color image into the workspace and view it.

originalRGB = imread('peppers.png');
imview(originalRGB)

Create a filter, h, that can be used to approximate linear camera motion

h = fspecial('motion', 50, 45);

Computer Graphics & Image Processing 7 th Term-SE UET Taxila


UNIVERSITY OF ENGINEERING AND TECHNOLOGY, TAXILA
FACULTY OF TELECOMMUNICATION AND INFORMATION ENGINEERING

SOFTWARE ENGINEERING DEPARTMENT

Apply the filter, using imfilter, to the image rgb to create a new image, rgb2.

filteredRGB = imfilter(originalRGB, h);


imview(filteredRGB)

medfilt2
Perform two-dimensional median filtering

Syntax

B = medfilt2(A,[m n])
B = medfilt2(A)
B = medfilt2(A,'indexed',...)

Description

Median filtering is a nonlinear operation often used in image processing to reduce "salt and pepper"
noise. Median filtering is more effective than convolution when the goal is to simultaneously reduce
noise and preserve edges.

B = medfilt2(A,[m n]) performs median filtering of the matrix A in two dimensions. Each output pixel
contains the median value in the m-by-n neighborhood around the corresponding pixel in the input
image. medfilt2 pads the image with 0's on the edges, so the median values for the points within [m
n]/2 of the edges might appear distorted.

B = medfilt2(A) performs median filtering of the matrix A using the default 3-by-3 neighborhood.

B = medfilt2(A,'indexed',...) processes A as an indexed image, padding with 0's if the class of A is


uint8, or 1's if the class of A is double.

Example

This example adds salt and pepper noise to an image, then restores the image using medfilt2.

I = imread('eight.tif');
J = imnoise(I,'salt & pepper',0.02);
K = medfilt2(J);
imview(J), imview(K)

Computer Graphics & Image Processing 7 th Term-SE UET Taxila


UNIVERSITY OF ENGINEERING AND TECHNOLOGY, TAXILA
FACULTY OF TELECOMMUNICATION AND INFORMATION ENGINEERING

SOFTWARE ENGINEERING DEPARTMENT

******************************************************************

TASK

Using the built in functions described above, implement the following filtering
1. Averaging Filtering.
2. Median Filtering.
3. Laplacian Filtering.

******************************************************************

Computer Graphics & Image Processing 7 th Term-SE UET Taxila

You might also like