Fundamentals of Image Processing Lab Manual 2014 PDF
Fundamentals of Image Processing Lab Manual 2014 PDF
Image Processing
Laboratory Manual
CERTIFICATE
This
is
to
certify
that
Mr/Miss
Date:
Page 2
List of Experiments
Sr.
No.
1.
2.
Name of Experiment
Write program to read and display digital image using MATLAB or
SCILAB
Become familiar with SCILAB/MATLAB Basic commands
Read and display image in SCILAB/MATLAB
Resize given image
Convert given color image into gray-scale image
Convert given color/gray-scale image into black & white image
Draw image profile
Seprate color image in three R G & B planes
Create color image using R, G and B three separate planes
Flow control and LOOP in SCILAB
Write given 2-D data in image file
To write and execute image processing programs using point
processing method
3.
4.
6.
5.
Translation
Scaling
Rotation
Shrinking
Zooming
Page 3
7.
8.
9.
11.
12.
10.
Solve exercise given at the end of each practical, write answers and execute it
Write and execute all programs either in MATLAB or SCILAB. You can cut and
paste results of image processing in soft copy of this lab manual. Write all the
programs in separate folder. Prepare your folder in your laptop/computer.
There are two SET of experiments. SET 1 having seven experiments. Students
must complete first SET of seven experiments before 15th March 2014 and get
signature of faculties in all six experiments. SET 2 having another 5
experiments. Students should complete SET2 before 30 th April 2014.
Page 4
EXPERIMENT NO. 1
AIM: Write program to read and display digital image using MATLAB or
SCILAB
Introduction of SCILAB:
SciLab is a programming language for mathematical operations It provides
development environment for mathematical programming. It is very much
useful for matrix manipulation hence it is good choice for signal processing
and image processing applications. It is similar to MATLAB. MATLAB is
commercial software while SCILAB is open source software. It has one
thousand four hundred in-built functions and it is growing day by day.
Image and Video processing toolbox will be useful for this subject.
Students can download free SCILAB software from following website:
http://www.scilab.in
You can also create your log in on the e-Prayog website:
http://59.181.142.81 and get scilab link from there. For image processing
experiments you need to download SIVP (Speech, Image, Video Processing)
Toolbox.
Saving and Loading Programs in SCILAB:
SCILAB can be used as a prototyping environment in which we try things
out, examine the results and then adjust our programs to give better
performance. We can give SCILAB commands on command prompt. For
large number of commands, we can use SCILAB editor. We can write
sequence of commands in SCILAB editor and then save as .sce files. We can
execute .sce file to see the execution of the program.
Some commands and programs in SCILAB:
[1] Declaring matrices:
In SciLab, there is no need to declare variables; new variables are simply
introduced as they are required.
A = [1 2 3; 4 5 6; 7 8 9]
The above SCILAB command declares following matrix:
1 2 3
A = 4 5 6
7 8 9
Keep following things in mind while declaring variables/matrices:
No spaces
Dont start with a number
Variable names are case sensitive
E.C. Department, Government Engineering College, Rajkot
Page 5
Page 6
Page 7
Example:
myImage=imread(RGBBar.bmp);
RED=myImage(:,:,1);
GREEN=myImage(:,:,2);
BLUE=myImage(:,:,3);
[11] Combine three separate R,G,B planes to create color image
If we have three R,G and B planes separately and if we want to create color
image from it, we can use concatenate function:
Example:
newImage=cat(3,RED,BLUE,GREEN)
Page 8
:: WORKSHEET ::
[1] Give following commands in SCILAB, observe output and write
explanation of each command
t = 0:0.01:1
y=sin(2*%pi*10)
plot(y)
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
E.C. Department, Government Engineering College, Rajkot
Page 9
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
[2] Create image of size 512x512 black square using monochrome, 256
gray-level using paint or any other relevant software and save it file name
black.bmp Read and display image using SCILAB/MATLAB commands
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
[3] Execute following program for the image created in exercise[2] and
observe the result. Write comments on the result :
imgData=imread('black.bmp');
[Rows,Cols]=size(imgData);
imshow(imgData);
for i=1:Rows
for j=1:Cols
if(i>Rows/4 && i<3*Rows/4)
if(j>Cols/4 && j<3*Cols/4)
imgData(i,j)=0;
end
end
end
end
figure;
imshow(imgData);
Page 10
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
[4] Write MATLAB command for the following
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
Page 11
EXPERIMENT NO. 2
AIM: To write and execute image processing programs using point
processing methods
Obtain Negative image
Obtain Flip image
Threshold operation (Thresholding)
Contrast stretching
Introduction:
Image enhancement can be done in two domain: [1] Spatial Domain and
[2] Transform domain.
In Spatial domain Image processing, there are two ways:
Point processing (Single pixel is processed at a time)
Neighborhood processing (Mask processing) Convolution of 3x3 or 5x5
or other size of mask with image
In point processing, Grey level transformation can be given by following
equation
g(x,y)=T(f(x,y)) s=T(r)
Where, f(x,y) is original image, g(x,y) is transformed image
s = gray level of transformed image
r = gray level of original image
Threshold operation:
In threshold operation, Pixel value greater than
threshold value is made white and pixel value
less than threshold value is made black. If we
consider image having gray levels r and if grey
levels in output image is s than,
s=0
if r m
s = 255
if r > m
Where m = threshold
Page 12
Page 13
subplot(2,1,1); imshow(imagedata) ;
subplot(2,1,2); imshow(FlippedImageData,[]);
%Write flipped image to a file
imwrite(mat2gray(FlippedImageData),'FlipTest.jpg','quality',99);
Negative Image:
Negative Image can be obtained by subtracting each pixel value from 255.
255
s = 255-r
255
Page 14
Contrast Stretching:
Contrast Stretching means Darkening level below threshold value m and
whitening level above threshold value m. This technique will enhance
contrast of given image. Thresholding is example of extreme constrast
stretching.
Practically contrast stretching is done by
piecewise linear approximation of graph
shown in left by following equations:
s = x.r
s = y.r
s = z.r
0 r<a
a r<b
b r<255
Page 15
:: WORKSHEET ::
[1] Modify program of horizontal flipping for getting vertical flipping. Apply it
on some image
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
[1] In contrast stretching program take threshold values 50 and 100, Use
slope 3 for gray levels between 0 to 50, slope 2 for gray levels between 50 to
100 and slope 1 for rest gray levels. Modify and write program again.
Execute it for some image.
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
Lab Manual of Fundamentals of Image Processing
Page 16
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
Copy and Paste original and contrast stretched images here:
Page 17
EXPERIMENT NO. 3
AIM: To write and execute programs for image arithmetic operations
Introduction:
Arithmetic operations like image addition, subtraction,
multiplication and division is possible. If there is two images I1 and I2 then
addition of image can be given by:
I(x,y) = I1(x,y) + I2(x,y)
Where I(x,y) is resultant image due to addition of two images. x and y are
coordinates of image. Image addition is pixel to pixel. Value of pixel should
not cross maximum allowed value that is 255 for 8 bit grey scale image.
When it exceeds value 255, it should be clipped to 255.
To increase overall brightness of the image, we can add some constant value
depending on brightness required. In example program we will add value 50
to the image and compare brightness of original and modified image.
To decrease brightness of image, we can subtract constant value. In example
program, value 100 is subtracted for every pixel. Care should be taken that
pixel value should not less than 0 (minus value). Subtract operation can be
used to obtain complement (negative) image in which every pixel is
subtracted from maximum value i.e. 255 for 8 bit greyscale image.
Multiplication operation can be used to mask the image for obtaining region
of interest. Black and white mask (binary image) containing 1s and 0s is
multiplied with image to get resultant image. To obtain binary image
function im2bw() can be used. Multiplication operation can also be used to
increase brightness of the image
Division operation results into floating point numbers. So data type required
is floating point numbers. It can be converted into integer data type while
storing the image. Division can be used to decrease the brightness of the
image. It can also used to detect change in image.
Execute following MATLAB program:
%Experiment No. 3 Image Arithmetic Operations
%Image Processing Lab, E.C. Department, GEC Rajkot
%Image addition is done between two similar size of image, so image resize
%function is used to make size of both image same.
%I=I1+I2
clc
close all
I1 = imread('cameraman.tif');
I2 = imread('rice.png');
Lab Manual of Fundamentals of Image Processing
Page 18
Original image I2
Page 19
Original image I1
Bright Image I
Dark Image I
Masked Image I
Page 20
end
end
end
subplot(2,2,k); imshow(newimage,[]);
k=k+1;
end
Result:
Page 21
:: WORKSHEET ::
[1] In above program, use functions imadd() functions to addition,
imsubtract() for subtraction immultiply() for multiplication operations.
Use imcomplement() function to get complement of image. Write
program again using these functions in following space.
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
[2] Write Program to read any image, resize it to 256x256. Apply square
mask shown in following figure so that only middle part of the image is
visible.
128
256
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
Lab Manual of Fundamentals of Image Processing
Page 22
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
[3] Write your own matlab function addbrightness() and use it to increase
brightness of given image.
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
E.C. Department, Government Engineering College, Rajkot
Page 23
EXPERIMENT NO. 4
AIM: To write and execute programs for image logical operations
Introduction: Bitwise logical operations can be performed between pixels of
one or more than one image.
AND/NAND Logical operations can be used for following applications:
Compute intersection of the images
Design of filter masks
Slicing of gray scale images
OR/NOR logical operations can be used for following applications:
Merging of two images
XOR/XNOR operations can be used for following applications:
To detect change in gray level in the image
Check similarity of two images
NOT operation is used for:
To obtain negative image
Making some features clear
Program:
Experiment No. 4 Image Logical Operations
%Image Processing Lab, E.C. Department, GEC Rajkot
%Logical operations between two image circle and pentagon is shown
clc
close all
clc
close all
myimageA=imread('circle.jpg');
myimageA=rgb2gray(myimageA);
myimageB=imread('pentagon.jpg');
myimageB=rgb2gray(myimageB);
subplot(3,2,1)
imshow(myimageA),title('Image A ');
% Display the Original Image B
subplot(3,2,2)
imshow(myimageB),title('Image B');
% Take a complement of Image A and Display it
subplot(3,2,3)
cimageA= ~myimageA ;
imshow(cimageA), title('Complement of Image A');
% Take a Ex-OR of Image A and Image B and Display it
subplot(3,2,4)
xorimage= xor(myimageA,myimageB);
imshow(xorimage), title('Image A XOR Image B');
Lab Manual of Fundamentals of Image Processing
Page 24
Image B
Complement of Image A
Image A OR Image B
Page 25
Page 26
Original Image
Watermarked image
Extracted Key
:: WORKSHEET ::
[1] Prepare any two images of size 256x256 in paint. Save it in JPEG format
256 gray levels. Perform logical NOR, NAND operations between two images.
Write program and paste your results.
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
E.C. Department, Government Engineering College, Rajkot
Page 27
Page 28
EXPERIMENT NO. 5
AIM: To write a program for histogram calculation and equalization
Introduction:
Histogram is bar-graph used to profile the occurrence of each gray
level in the image
Mathematically it is represented as h(rk)=nk
Where rk is kth grey level and nk is number of pixel having that grey
level
Histogram can tell us whether image was scanned properly or not. It
gives us idea about tonal distribution in the image.
Histogram equalization can be applied to improve appearance of the
image
i = 1 to rows
j = 1 to cols
k=data(i,j)
Page 29
Page 30
Page 31
Program output:
Original image
1000
500
0
Equalised Histogram
100
200
300
3000
2000
1000
100
200
300
Page 32
Page 33
printf("%2d |",i);
for(j=1; j<=hist[i];j++) printf("*");
printf("\n");
}
printf("\n\n");
}
R
Video
Viewer
G
B
Video Vi ewer
Histogram
R
Teddy.jpg
G
B
2
Histogram1
Image From Fi le
M atrix
Concatenate
User
Vector
Scope
Histogram2
Page 34
Page 35
:: WORKSHEET ::
[1] Take your own photograph in dark area. Improve its appearance using
histogram equalization technique.
(Copy and paste your original image, its histogram, equalized image and its
histogram)
Page 36
EXPERIMENT NO. 6
AIM: To write and execute program for geometric transformation of image
Introduction: We will perform following geometric transformations on the
image in this experiment
Translation: Translation is movement of image to new position.
Mathematically translation is represented as:
x = x +x and y = y + y
In matrix form translation is represented by:
x'
1
y ' 1 = 0
0
x
y
1
0
1
0
x
y
1
x'
S x
y ' 1 = 0
0
0
Sy
0
0
0
1
x
y
1
x'
cos
y ' 1 = sin
0
sin
cos
0
0
0
1
x
y
1
x = shx y
y = y
Page 37
1
Xshear= sh x
0
0
1
0
0
0
1
x
y
1
x = x
y = y shy
1
Yshear= 0
0
sh y
1
0
0
0
1
x
y
1
Page 38
y = imtransform(x,tform);
subplot(2,2,4); imshow(y); title('Shear in X-Y direction');
Result after execution of program:
Orignial Image
Orignial Image
Shear in Y direction
Shear in X direction
Page 39
Exercise:
[1] In above program, modify matrix for geometric transformation and use
imtransform() function for modified matrix. Show the results and your
conclusions.
Program:
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
Result after execution of program:
Conclusion:
Page 40
EXPERIMENT NO. 7
AIM: To understand various image noise models and to write programs for
image restoration
Introduction:
Image restoration is the process of removing or minimizing known
degradations in the given image. No imaging system gives perfect quality of
recorded images due to various reasons.
Image restoration is used to improve quality of image by various methods in
which it will try to decrease degradations & noise.
Degradation of images can occur due to many reasons. Some of them are as
under:
Poor Image sensors
Defects of optical lenses in camera
Non-linearity of the electro-optical sensor;
Graininess of the film material which is utilised to store the image
Relative motion between an object and camera
Wrong focus of camera
Atmospheric turbulence in remote sensing or astronomy
Degradation due to temperature sensitive sensors like CCD
Poor light levels
Degradation of images causes:
Radiometric degradations;
Geometric distortions;
Spatial degradations.
Model of Image Degradation/restoration Process is shown in the following
figure.
Spatial domain:
g(x,y)=h(x,y)*f(x,y) + (x,y)
Page 41
Program:
% Experiment No. 7
% To add noise in the image and apply image restoration
% technique using Wiener filter and median filter
% EC Department, GEC Rajkot
clear all;
close all;
[filename,pathname]=uigetfile({'*.bmp;*.tif;*.tiff;*.jpg;*.jpeg;*.gif','IMAGE Files
(*.bmp,*.tif,*.tiff,*.jpg,*.jpeg,*.gif)'},'Chose Image File');
A= imread(cat(2,pathname,filename));
if(size(A,3)==3)
A=rgb2gray(A);
end
subplot(2,2,1); imshow(A);title('Original image');
% Add salt & pepper noise
B = imnoise(A,'salt & pepper', 0.02);
subplot(2,2,2); imshow(B);title('Image with salt & pepper noise');
% Remove Salt & pepper noise by median filters
K = medfilt2(B);
subplot(2,2,3); imshow(uint8(K)); title('Remove salt & pepper noise by median filter');
% Remove salt & pepper noise by Wiener filter
L = wiener2(B,[5 5]);
subplot(2,2,4); imshow(uint8(L)); title('Remove salt & pepper noise by Wiener filter');
figure;
subplot(2,2,1); imshow(A);title('Original image');
% Add gaussian noise
M = imnoise(A,'gaussian',0,0.005);
subplot(2,2,2); imshow(M); title('Image with gaussian noise');
% Remove Gaussian noise by Wiener filter
L = wiener2(M,[5 5]);
subplot(2,2,3); imshow(uint8(L));title('Remove Gaussian noise by Wiener filter');
K = medfilt2(M);
subplot(2,2,4); imshow(uint8(K)); title('Remove Gaussian noise by median filter');
Exercise:
[1] Draw conclusion from two figures in this experiment. Which filter is
better to remove salt and pepper noise ?
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
Page 42
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
[3] Write mathematical expression for arithmetic mean filter, geometric
mean filter, harmonic mean filter and contra-harmonic mean filter
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
[3] What is the basic idea behind adaptive filters?
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
E.C. Department, Government Engineering College, Rajkot
Page 43
EXPERIMENT NO. 8
AIM: Write and execute programs to remove noise using spatial filters
Understand 1-D and 2-D convolution process
Use 3x3 Mask for low pass filter and high pass filter
Introduction:
Spatial Filtering is sometimes also known as neighborhood processing.
Neighborhood processing is an appropriate name because you define a
center point and perform an operation (or apply a filter) to only those pixels
in predetermined neighborhood of that center point. The result of the
operation is one value, which becomes the value at the center point's
location in the modified image. Each point in the image is processed with its
neighbors. The general idea is shown below as a "sliding filter" that moves
throughout the image to calculate the value at the center location.
In spatial filtering, we perform convolution of data with filter coefficients. In
image processing, we perform convolution of 3x3 filter coefficients with 2-D
image data. In signal processing, we perform convolution of 1-D data with
set of filter coefficients.
Program for 1D convolution (Useful for 1-D Signal Processing):
clear;
clc;
x=input("Enter value of x: ")
y=input("Enter value of y: ")
n=length(x)
k=length(y)
for z=n+1:n+k-1
x(z)=0;
end
for u=k+1:n+k-1
y(u)=0;
end
for i=1:n+k-1
s(i)=0
for j=1:i
s(i)=(x(j)*y(i-j+1))+s(i)
end
end
subplot(3,1,1)
plot2d3(x)
Lab Manual of Fundamentals of Image Processing
Page 44
subplot(3,1,2)
plot2d3(y)
subplot(3,1,3)
plot2d3(s)
Take value of x: [ 1 2 3 4 5 6 7 8 9 0 10 11 12 13 14 15]
Y: [-1 1]
Observe result of convolution and write your comments:
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
Program for 2D convolution:
clear;
clc;
x=input("Enter value of x in matrix form: ")
y=input("Enter value of y in matrix form: ")
[xrows,xcols]=size(x);
[yrows,ycols]=size(y);
result=zeros(xrows+yrows,xcols+ycols)
for r = 1:xrows-1
for c = 1:xcols-1
sum=0;
for a=0:yrows
for b=0:ycols
sum=sum+x(r+a,c+b)*y(a+1,b+1);
end
end
E.C. Department, Government Engineering College, Rajkot
Page 45
result(r,c)=sum;
end
end
Enter following 2D matrix for x:
10 10 10 10
10 10 10 10
10 10 10 10
10 10 10 10
10 10 10 10
10 10 10 10
10 10 10 10
10 10 10 10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
Page 46
Program:
% Experiment No. 8 Spatial filtering using standard MATLAB function
% To apply spatial filters on given image
% EC Department, GEC Rajkot
clc;
close all;
clear all;
%Define spatial filter masks
L1=[1 1 1;1 1 1;1 1 1];
L2=[0 1 0;1 2 1;0 1 0];
L3=[1 2 1;2 4 2;1 2 1];
H1=[-1 -1 -1;-1 9 -1;-1 -1 -1];
H2=[0 -1 0;-1 5 -1;-0 -1 0];
H3=[1 -2 1;-2 5 -2;1 -2 1];
% Read the test image and display it
[filename,pathname]=uigetfile({'*.bmp;*.tif;*.tiff;*.jpg;*.jpeg;*.gif','IMAGE Files
(*.bmp,*.tif,*.tiff,*.jpg,*.jpeg,*.gif)'},'Chose Image File');
myimage = imread(cat(2,pathname,filename));
if(size(myimage,3)==3)
myimage=rgb2gray(myimage);
end
subplot(3,2,1);
imshow(myimage); title('Original Image');
L1 = L1/sum(L1);
filt_image= conv2(double(myimage),double(L1));
subplot(3,2,2);
imshow(filt_image,[]);
title('Filtered image with mask L1');
L2 = L2/sum(L2);
filt_image= conv2(double(myimage),double(L2));
subplot(3,2,3);
imshow(filt_image,[]);
title('Filtered image with mask L2');
L3 = L3/sum(L3);
filt_image= conv2(double(myimage),double(L3));
subplot(3,2,4);
imshow(filt_image,[]);
title('Filtered image with mask L3');
filt_image= conv2(double(myimage),H1);
subplot(3,2,5);
imshow(filt_image,[]);
title('Filtered image with mask H1');
E.C. Department, Government Engineering College, Rajkot
Page 47
filt_image= conv2(double(myimage),H2);
subplot(3,2,6);
imshow(filt_image,[]);
title('Filtered image with mask H1');
figure;
subplot(2,2,1);
imshow(myimage); title('Original Image');
% The command fspecial() is used to create mask
% The command imfilter() is used to apply the gaussian filter mask to the image
% Create a Gaussian low pass filter of size 3
gaussmask = fspecial('gaussian',3);
filtimg = imfilter(myimage,gaussmask);
subplot(2,2,2);
imshow(filtimg,[]),title('Output of Gaussian filter 3 X 3');
% Generate a lowpass filter of size 7 X 7
% The command conv2 is used the apply the filter
% This is another way of using the filter
avgfilt = [ 1 1 1 1 1 1 1;
1 1 1 1 1 1 1;
1 1 1 1 1 1 1;
1 1 1 1 1 1 1;
1 1 1 1 1 1 1;
1 1 1 1 1 1 1;
1 1 1 1 1 1 1];
avgfiltmask = avgfilt/sum(avgfilt);
convimage= conv2(double(myimage),double(avgfiltmask));
subplot(2,2,3);
imshow(convimage,[]);
title('Average filter with conv2()');
filt_image= conv2(double(myimage),H3);
subplot(3,2,6);
imshow(filt_image,[]);
title('Filtered image with mask H3');
Page 48
:: WORKSHEET ::
[1] Write mathematical expression of spatial filtering of image f(x,y) of size
MN using mask W of size ab.
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
[2] What is need for padding? What is zero padding? Why it is required?
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
[3] What is the effect of increasing size of mask?
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
E.C. Department, Government Engineering College, Rajkot
Page 49
EXPERIMENT NO. 9
AIM: Write and execute programs for image frequency domain filtering
Introduction:
In spatial domain, we perform convolution of filter mask with image data. In
frequency domain we perform multiplication of Fourier transform of image
data with filter transfer function.
Fourier transform of image f(x,y) of size MxN can be given by:
Page 50
Program:
% Experiment 9 Program for frequency domain filtering
% EC Department, GEC Rajkot
clc;
close all;
clear all;
% Read the image, resize it to 256 x 256
% Convert it to grey image and display it
[filename,pathname]=uigetfile({'*.bmp;*.tif;*.tiff;*.jpg;*.jpeg;*.gif','IMAGE Files
(*.bmp,*.tif,*.tiff,*.jpg,*.jpeg,*.gif)'},'Chose Image File');
myimg=imread(cat(2,pathname,filename));
if(size(myimg,3)==3)
myimg=rgb2gray(myimg);
end
myimg = imresize(myimg,[256 256]);
myimg=double(myimg);
subplot(2,2,1);
imshow(myimg,[]),title('Original Image');
[M,N] = size(myimg); % Find size
%Preprocessing of the image
for x=1:M
for y=1:N
myimg1(x,y)=myimg(x,y)*((-1)^(x+y));
end
end
% Find FFT of the image
myfftimage = fft2(myimg1);
subplot(2,2,2);
imshow(myfftimage,[]); title('FFT Image');
% Define cut off frequency
low = 30;
band1 = 20;
band2 = 50;
%Define Filter Mask
mylowpassmask = ones(M,N);
mybandpassmask = ones(M,N);
% Generate values for ifilter pass mask
for u = 1:M
for v = 1:N
tmp = ((u-(M/2))^2 +(v-(N/2))^2)^0.5;
if tmp > low
mylowpassmask(u,v) = 0;
end
if tmp > band2 || tmp < band1;
mybandpassmask(u,v) = 0;
E.C. Department, Government Engineering College, Rajkot
Page 51
end
end
end
% Apply the filter H to the FFT of the Image
resimage1 = myfftimage.*mylowpassmask;
resimage3 = myfftimage.*mybandpassmask;
% Apply the Inverse FFT to the filtered image
% Display the low pass filtered image
r1 = abs(ifft2(resimage1));
subplot(2,2,3);
imshow(r1,[]),title('Low Pass filtered image');
% Display the band pass filtered image
r3 = abs(ifft2(resimage3));
subplot(2,2,4);
imshow(r3,[]),title('Band Pass filtered image');
figure;
subplot(2,1,1);imshow(mylowpassmask);
subplot(2,1,2);imshow(mybandpassmask);
:: WORKSHEET ::
[1] Instead of following pre-processing step in above program use fftshift function to shift
FFT in the center. See changes in the result and write conclusion.
%Preprocessing of the image
for x=1:M
for y=1:N
myimg1(x,y)=myimg(x,y)*((-1)^(x+y));
end
end
Remove above step and use following commands.
myfftimage = fft2(myimg);
myfftimage=fftshift(myfftimage);
Conclusion:
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
Lab Manual of Fundamentals of Image Processing
Page 52
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
[2] Write a routine for high pass filter mask
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
[2] Write a routine for high pass filter mask
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
Page 53
EXPERIMENT NO. 10
AIM: Write a program in C and MATLAB/SCILAB for edge detection using
different edge detection mask.
Introduction:
Image segmentation is to subdivide an image into its component regions or
objects. Segmentation should stop when the objects of interest in an
application have been isolated. Basic purpose of segmentation is to partition
an image into meaningful regions for particular application The
segmentation is based on measurements taken from the image and might be
grey level, colour, texture, depth or motion.
There are basically two types of image segmentation approaches:
[1] Discontinuity based: Identification of isolated points, lines or edges
[2] Similarity based: Group pixels which has similar characteristics by
thresholding, region growing, region splitting and merging
Edge detection is discontinuity based image segmentation approach. Edges
play a very important role in many image processing applications. It
provides outline of an object. In physical plane, edges are corresponding to
changes in material properties, intensity variations, discontinuity in depth.
Pixels on the edges are called edge points. Edge detection techniques
basically try to find out grey level transitions.
Edge detection can be done by first order derivative and second order
derivative operators.
First order line detection 3x3 mask are:
Page 54
Sobel operator performs well for image with noise compared to Prewitt
operator because Sobel operator performs averaging along with edge
detection.
Because Sobel operator gives smoothing effect, spurious edges will not
be detected by it.
Second derivative operators are sensitive to the noise present in the image
so it is not directly used to detect edge but it can be used to extract
secondary information like
Used to find whether point is on darker side or white side depending
on sign of the result
Zero crossing can be used to identify exact location of edge whenever
there is gradual transitions in the image
Page 55
BW = edge(A,'log');
subplot(3,2,5); imshow(BW);;title('Edge detection with log ');
BW = edge(A,'zerocross');
subplot(3,2,6); imshow(BW);;title('Edge detection with zerocorss');
MATLAB Code for edge detection using convolution in spatial domain
% EC Department, GEC Rajkot
% Experiment 9
% Program to demonstrate various point and edge detection mask
% Image Processing Lab, EC Department, GEC Rajkot
clear all;
clc;
while 1
K = menu('Choose mask','Select Image File','Point Detect','Horizontal line detect','Vertical
line detect','+45 Detect','-45 Detect','ractangle Detect','exit')
M=[-1 0 -1; 0 4 0; -1 0 -1;] % Default mask
switch K
case 1,
[namefile,pathname]=uigetfile({'*.bmp;*.tif;*.tiff;*.jpg;*.jpeg;*.gif','IMAGE Files
(*.bmp,*.tif,*.tiff,*.jpg,*.jpeg,*.gif)'},'Chose GrayScale Image');
data=imread(strcat(pathname,namefile));
%data=rgb2gray(data);
imshow(data);
case 2,
M=[-1 -1 -1;-1 8 -1;-1 -1 -1]; % Mask for point detection
case 3,
M=[-1 -1 -1; 2 2 2; -1 -1 -1]; % Mask for horizontal edges
case 4,
M=[-1 2 -1; -1 2 -1; -1 2 -1]; % Mask for vertical edges
case 5,
M=[-1 -1 2; -1 2 -1; 2 -1 -1]; % Mask for 45 degree diagonal line
case 6,
M=[2 -1 -1;-1 2 -1; -1 -1 2]; % Mask for -45 degree diagonal line
case 7,
M=[-1 -1 -1;-1 8 -1;-1 -1 -1];
case 8,
break;
otherwise,
msgbox('Select proper mask');
end
outimage=conv2(double(data),double(M));
figure;
imshow(outimage);
end
close all
%Write an image to a file
Lab Manual of Fundamentals of Image Processing
Page 56
imwrite(mat2gray(outimage),'outimage.jpg','quality',99);
:: WORKSHEET ::
[1] Get mask for Prewitt, Canny, Sobel from the literature and write
MATLAB/SCILAB program for edge detection using 2D convolution
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
E.C. Department, Government Engineering College, Rajkot
Page 57
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
[2] Understand following C++ program written for edge detection. Different
member functions are written for image class. Image class and member
function are written in Image.h header file and used in main program in
file image.cpp
//file image.h
# include <iostream.h>
# include <conio.h>
# include <stdio.h>
# include <string.h>
# define rows 10
# define cols 10
class image
{
private:
int data[10][10];
public:
void write_image(char[]);
void read_image(char[]);
void edge_detect(char[]);
};
void image::write_image(char filename[])
{
FILE *f1;
int i,j;
int k=rows*cols;
f1=fopen(filename,"wb");
for(i=0; i<rows;i++)
{
for(j=0; j<cols; j++)
{
Page 58
cin>>data[i][j];
}
}
fwrite(data,sizeof(int),k,f1);
fclose(f1);
}
void image::read_image(char filename[])
{
FILE *f1;
int i,j;
f1=fopen(filename,"rb");
int k=rows*cols;
fread(data,sizeof(int),k,f1);
for(i=0; i<rows;i++)
{
for(j=0; j<cols; j++)
{
cout<<data[i][j]<<" ";
}
cout<<endl;
}
fclose(f1);
}
void image::edge_detect(char *filename)
{
int i,j,a,b,sum,diff,maxdiff,outimage[rows][cols];
int threshold=8,max=15, min=0;
short QM[3][3]={{-1,0,-1},{0,4,0},{-1,0,-1}};
long m;
FILE *f1;
f1=fopen(filename,"rb");
int k=rows*cols;
for(i=0; i<rows;i++)
{
for(j=0; j<cols; j++) outimage[i][j]=0;
}
fread(data,sizeof(int),k,f1);
for(i=1; i<rows-1;i++)
{
for(j=1; j<cols-1; j++)
{
sum=0;
for(a=-1; a<2; a++)
{
for(b=-1;b<2;b++) sum=sum+data[i+a][j+b]*QM[a+1][b+1];
}
if(sum<0) sum=0;
if(sum>16) sum=15;
outimage[i][j]=sum;
}
}
cout<<"\nEdge detection using Quick mask:"<<endl;
for(i=0; i<rows;i++)
{
for(j=0; j<cols; j++) printf("%02d ", outimage[i][j]);
cout<<endl;
}
fclose(f1);
Page 59
//file Image.cpp
# include "d:\image\image.h"
void help();
void main(int argc, char* argv[])
{
image I;
char file_name[30];
clrscr();
if(argv[1])
{
if(!argv[2])
{
printf("Enter file name: ");
scanf("%s",file_name);
}
else
{
strcpy(file_name,argv[2]);
}
if(!strcmp(argv[1],"write"))
{I.write_image(file_name);}
else if(!strcmp(argv[1],"read"))
{I.read_image(file_name);}
else if(!strcmp(argv[1],"edge"))
{ I.edge_detect(file_name); }
else if(!strcmp(argv[1],"hist"))
{ }
else
{help();}
}
else {help();}
}
void help()
{
printf("\n\t\t Image Processing Tutorial !");
printf("\t\t\tUsage :\n");
printf("\t\t\timage <operation> <filename>\n");
printf("\t\t\tFor example :\n ");
printf("\t\t\timage write data : To write image in \"data\" file\n");
printf("\n\t\t\tOther Operations:\n");
printf("\n\t\t read: read image\n");
printf("\n\t\t edge : Edge detection\n");
printf("\n\t\t hist : display histogram of image\n");
}
Page 60
Output:
Original Image of size 1010:
1111111111
00 00 00 00 00 00 00 00 00 00
1111111111
00 00 00 00 00 00 00 00 00 00
1111111111
00 00 00 00 00 00 00 00 00 00
1119999111
1119999111
00 00 00 15 16 16 15 00 00 00
1119999111
00 00 00 16 00 00 16 00 00 00
1119999111
00 00 00 16 00 00 16 00 00 00
1111111111
1111111111
1111111111
Exercise:
[1] Modify above program for edge detection using kirsch, prewitt & sobel mask
[2] Add member function LPF() to image class for spatial filtering of given image
Hint: Use following low pass convolution mask for low pass filtering
1/6 *
0 1 0
1 2 1
0 1 0
Page 61
EXPERIMENT NO. 11
AIM: Write and execute program for image morphological operations:
erosion and dilation
Introduction:
Morphology is a branch of biology that deals with form and structure
of animal and plant
In image processing, we use mathematical morphology to extract
image components which are useful in representation and description
of region shape such as Boundaries, Skeletons, Convex hull,
Thinning, Pruning etc.
Two Fundamental morphological operations are: Erosion and dilation
Dilation adds pixels to the boundaries of objects in an image, while
erosion removes pixels on object boundaries.
Erosion and dilation are two fundamental image morphological operations.
Dilation adds pixels to the boundaries of objects in an image, while
erosion removes pixels on object boundaries.
Dilation operation: The value of the output pixel is the maximum
value of all the pixels in the input pixels neighborhood. In a binary
image, if any of the pixels is set to the value 1, the output pixel is set
to 1.
Erosion operation: The value of the output pixel is the minimum value
of all the pixels in the input pixels neighborhood. In a binary image, if
any of the pixels is set to 0, the output pixel is set to 0.
Opening and closing operations can be done by combination of
erosion and dilation in different sequence.
Program:
Page 62
B = strel('disk', 9);
%B = strel('disk', 5);
switch K
case 1,
[namefile,pathname]=uigetfile({'*.bmp;*.tif;*.tiff;*.jpg;
*.jpeg;*.gif','IMAGE Files (*.bmp,*.tif,*.tiff,*.jpg,
*.jpeg,*.gif)'},'Chose GrayScale Image');
A=imread(strcat(pathname,namefile));
%data=rgb2gray(data);
imshow(A);
case 2,
B=[1 1 1;1 1 1;1 1 1;];
case 3,
B=[1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;];
case 4,
[namefile,pathname]=uigetfile({'*.bmp;*.tif;*.tiff;*.jpg;
*.jpeg;*.gif','IMAGE Files (*.bmp,*.tif,*.tiff,*.jpg,
*.jpeg,*.gif)'},'Chose GrayScale Image');
B=imread(strcat(pathname,namefile));
%data=rgb2gray(data);
figure;
imshow(B);
case 5,
C=imerode(A,B);
figure;
imshow(C);
case 6,
C=imdilate(A,B);
figure;
imshow(C)
case 7,
C=imdilate(A,B);
D=imerode(C,B);
figure;
imshow(D)
case 8,
C=imerode(A,B);
D=imdilate(C,B);
figure;
imshow(D)
case 9,
break;
otherwise,
E.C. Department, Government Engineering College, Rajkot
Page 63
WORKSHEET ::
[1] What is cryptography?
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------[2] What is sateganography?
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------[3] How watermarking differs from cryptography and sateganography?
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Execute above program given in this experiment on suitable image, cut and
paste resultant images on separate page and write your conclusion.
Page 64
EXPERIMENT NO. 12
AIM:
To write and execute program for wavelet transform on given image and
perform inverse wavelet transform to reconstruct image.
Introduction:
Wavelet transform is relatively recent signal and image processing tool
which has many applications. Basis functions of Fourier transform is
sinusoids while basis functions of wavelet transform is wavelets.
Wavelets are oscillatory functions vanishing outside the small interval
hence, they are called wavelets. wave-let (small fraction of wave).
Wavelets are building blocks of the signal.
Wavelets are the functions which are well suited to the expansion of
real time non-stationary signals.
Wavelets can be used to de-correlate the correlations present in real
time signal such as speech/audio, video, biomedical, seismic etc.
General block diagram of two dimensional wavelet transform:
Page 65
Page 66
Program:
clc;
close;
[namefile,pathname]=uigetfile({'*.bmp;*.tif;*.tiff;*.jpg;*.jpeg;*.gif','IMAGE Files
(*.bmp,*.tif,*.tiff,*.jpg,*.jpeg,*.gif)'},'Chose GrayScale Image');
X=imread(strcat(pathname,namefile));
if(size(X,3)==3)
X=rgb2gray(X);
end
imshow(X);
% Perform wavelet decomposition at level 2.
[c,s] = wavedec2(X,2,'db1');
figure;
imshow(c,[]); title('Wavelet decomposition data generated by wavedec2');
figure;
%Calculate first level approx. and detail components
ca1 = appcoef2(c,s,'db1',1);
subplot(2,2,1);imshow(ca1,[]);title('First level approx');
ch1 = detcoef2('h',c,s,1);
subplot(2,2,2);imshow(ch1,[]);title('First level horixontal detail');
cv1 = detcoef2('v',c,s,1);
subplot(2,2,3);imshow(cv1,[]);title('First level vertical detail');
cd1 = detcoef2('d',c,s,1);
subplot(2,2,4);imshow(cd1,[]);title('First level diagonal detail');
%Calculate second level approx. and detail components
figure;
ca2 = appcoef2(c,s,'db1',2);
subplot(2,2,1);imshow(ca2,[]);title('Second level approx');
ch2 = detcoef2('h',c,s,2);
subplot(2,2,2);imshow(ch2,[]);title('Second level horizontal detail');
cv2 = detcoef2('v',c,s,2);
subplot(2,2,3);imshow(cv2,[]);title('Second level vertical detail');
cd2 = detcoef2('d',c,s,2);
subplot(2,2,4);imshow(cd2,[]);title('Second level diagonal detail');
figure;
a0 = waverec2(c,s,'db1');
imshow(a0,[]);title('Reconstructed image using inverse wavelet transform');
Execute program given in this experiment on suitable image, cut and paste
resultant images on separate page and write your conclusion.
Page 67
:: WORKSHEET ::
[1] What is wavelet ?
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------[2] How wavelet transform used to remove noise from the image?
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------[3] Write analysis low pass and high pass wavelet filter coefficients for
Daubechies-2,4 and 8 wavelets.
(Hint: use matlab function wfilters() to find filter coefficients)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Page 68