0% found this document useful (0 votes)
210 views

Image Processing and Pattern Recoginition Lab Manual

The document describes experiments on digital image processing using Scilab. Experiment 1 involves reading, displaying and converting an image to grayscale. Experiment 2 adds, subtracts, multiplies and divides two images. Experiment 3 implements neighborhood metrics like filtering on a noisy image and analyzes the effect of filter size. Experiment 4 enhances an image using negative transformation and gamma correction. Experiment 5 plots histograms and performs histogram equalization and correlation. Experiments 6 and 7 implement smoothing and thresholding respectively on an input image.

Uploaded by

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

Image Processing and Pattern Recoginition Lab Manual

The document describes experiments on digital image processing using Scilab. Experiment 1 involves reading, displaying and converting an image to grayscale. Experiment 2 adds, subtracts, multiplies and divides two images. Experiment 3 implements neighborhood metrics like filtering on a noisy image and analyzes the effect of filter size. Experiment 4 enhances an image using negative transformation and gamma correction. Experiment 5 plots histograms and performs histogram equalization and correlation. Experiments 6 and 7 implement smoothing and thresholding respectively on an input image.

Uploaded by

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

EXP 1a:

Read, Access, and Display digital image using MATLAB or SCI Lab

Aim:

To read, access, and display digital images using MATLAB or Scilab.

Procedure:

1. Start
2. Open scilab
3. Open a new console window
4. Get the input image from your desktop
5. Show the image
6. Stop.

Program:

a=imread('F:\lily.jpg');
//figure;
subplot(1,2,1);
title('original image');
imshow(a);
a1=rgb2gray(a);
subplot(1,2,2);
title('gray image');
imshow(a1);
Output:

Result:

The program to read, access, and display digital images using MATLAB or Scilab was
executed successfully.
EXP 1b:

Add, Subtract, Multiply and Divide two images using SCI Lab

Aim:

To add, subtract, multiply and divide two images using Scilab.

Procedure:

1. Start
2. Open scilab
3. Open a new console window
4. Get the input images from your desktop
5. Add, subtract, multiply and divide the images
6. Show the image
7. Stop.

Program:

a=imread('F:\lily.jpg');
a=rgb2gray(a);
a=imresize(a,[100 100]);
subplot(2,3,1)
title('original image of a');
imshow(a);

b=imread('F:\doggo.jpeg');
b=rgb2gray(b);
b=imresize(b,[100 100]);
subplot(2,3,2)
title('original image of b');
imshow(b);

c=imadd(a,b);
subplot(2,3,3)
title('image addition');
imshow(c);

d=imsubtract(a,b);
subplot(2,3,4)
title('subtraction');
imshow(d);
e=immultiply(b,b);
subplot(2,3,5)
title('multiplication');
imshow(uint8(e));

f=imdivide(a,b);
f=imdivide(f,0.01);
subplot(2,3,6)
title('division');
imshow(f);

Output:

Result:

The program to add, subtract, multiply and divide two images using scilab was executed
successfully.
EXP 2:

Sampling

Aim:

To write a program to implement sampling of an image

Procedure:

1. Start
2. Open scilab
3. Open a new console window
4. Get the input image from your desktop
5. Sample the image using various values
6. Show the image
7. Stop.

Program:

clc;
n=2;
img = rgb2gray(imread('F:\lily.jpg'));
a=size(img);
w=a(2);
h=a(1);
im=zeros(100);
for i=1:n:h
for j=1:n:w
for k=0:n-1
for l=0:n-1
im(i+k,j+l)=img(i,j);
end
end
end
end

n1=4;
im1=zeros(100);
for i=1:n1:h
for j=1:n1:w
for k=0:n1-1
for l=0:n1-1
im1(i+k,j+l)=img(i,j);
end
end
end
end

n2=8;
im2=zeros(100);
for i=1:n2:h
for j=1:n2:w
for k=0:n2-1
for l=0:n2-1
im2(i+k,j+l)=img(i,j);
end
end
end
end

n3=12;
im3=zeros(100);
for i=1:n3:h
for j=1:n3:w
for k=0:n3-1
for l=0:n3-1
im3(i+k,j+l)=img(i,j);
end
end
end
end

subplot(2,3,1);
imshow(uint8(img));
title('Original Image');
subplot(2,3,2);
imshow(uint8(im));
title('Sampled Image - 2');
subplot(2,3,3);
imshow(uint8(im1));
title('Sampled Image - 4');
subplot(2,3,4);
imshow(uint8(im2));
title('Sampled Image - 8');
subplot(2,3,5);
imshow(uint8(im3));
title('Sampled Image - 12');
Output:

Result:

The program to implement sampling of an image was executed successfully.


EXP 3a:

Neighborhood Metrics

Aim:

To write a program to learn neighborhood metrics

Procedure:

1. Start
2. Open scilab
3. Open a new console window
4. Get the input image from your desktop
5. Implement neighborhood metrics
6. Show the image
7. Stop.

Program:

img = rgb2gray(imread('F:\lily.jpg'));
imgnoise = imnoise(img, 'salt and pepper');
subplot(2,3,1)
title('Original Image');
imshow(img);

subplot(2,3,2)
title('Noisy Image');
imshow(imgnoise);
flinear1=1/25*ones(5,5);
imglinear1=imfilter(imgnoise,flinear1);
subplot(2,3,3)
title('Linear Average Filtered');
imshow(imglinear1);
hsize=[5,5];
sigma=1;
flinear2=fspecial('gaussian',hsize,sigma);
imglinear2=imfilter(imgnoise,flinear2);
subplot(2,3,4)
title('Linear Gaussian Filtered');
imshow(imglinear2);
fnonlinear=[3,3];
imgnonlinear=immedian(imgnoise,fnonlinear);
subplot(2,3,5)
title('Median Filtered(Non-Linear)')
imshow(imgnonlinear)

Output:

Result:

Neighborhood metrics program has been executed successfully.


EXP 3b:

Effect of Size of Neighborhood


Aim:

To study the effect of the size of neighborhood on the result of processing

Procedure:

1. Start
2. Open scilab
3. Open a new console window
4. Get the input image from your desktop
5. Implement neighborhood metrics
6. Show the image
7. Stop.

Program:

clc;
clear all;
close all;
I = rgb2gray (imread("F:\lily.jpg"));
I_noise=imnoise (I, 'salt & pepper');
FilterSize = [3 3];
I_3x3 = immedian (I_noise, FilterSize ) ;
I_5x5 = immedian ( I_noise, [5 5]);
I_7x7 = immedian ( I_noise, [7 7]);
I_9x9 = immedian ( I_noise, [9 9]);
subplot (2,3,1);
title ('original image')
imshow (I)
subplot (2,3,2);
title ('noisy-image')
imshow (I_noise)
subplot (2,3,3);
title('Filter-size-3x3')
imshow (I_3x3)
subplot (2,3,4);
title('Filter-size-5x5')
imshow (I_5x5)
subplot (2,3,5);
title('Filter size 7x7')
imshow (I_7x7)
subplot (2,3,6);
title('Filter size 9x9')
imshow (I_9x9)

Output:

Result:

The program to study the effect of the size of neighborhood on the result of processing
has been executed successfully.
EXP 4:

Image Enhancement

Aim:

To write a program to enhance the image using scilab through image negative and
gamma transformation enhancement.

Procedure:

1. Start
2. Open scilab
3. Open a new console window
4. Get the input image from your desktop
5. Implement image enhancement processes
6. Show the image
7. Stop.

Program:

clc;
clear;
close;
img= imread ("F:\lily.jpg") ;
img=rgb2gray(img) ;
I =im2double(img);
J= imcomplement(I) ;
subplot(2, 3, 1);
title('Original-Image');
imshow (img) ;
subplot(2, 3, 2) ;
title('Image -Negative');
imshow(J) ;
gamma=1.5
k=I.^gamma;
subplot(2, 3, 3) ;
title('Garma-transformation');
imshow(k) ;
contrastl=1./(1+(0.2./(I+%eps)).^4);
contrast2=1./(1+ (0.5./(I+%eps)).^5);
contrast3=1./(1+(0.7./(I+%eps)).^10);
subplot(2, 3, 4) , imshow (contrastl) ;
title ('Contrast enhancement -0.2') ;
subplot(2, 3, 5) , imshow (contrast2) ;
title ('Contrast enhancement 0.5') ;
subplot(2, 3, 6) , imshow (contrast3);
title('Contrast enhancement-0.71') ;

Output:

Result:

Image enhancement program has been executed successfully


EXP 5:

Histogram

Aim:

To plot histogram, histogram equalized image and correlate between histogram and
histogram equalized of original image.

Procedure:

1. Start
2. Open scilab
3. Open a new console window
4. Get the input image from your desktop
5. Implement histogram equalization
6. Implement correlation
7. Show the image
8. Stop.

Program:

For Histogram Equalization:

clc ;
clear;
close;
img=imread ('F:\lily.jpg');
img=rgb2gray(img)
[count, cells ]= imhist (img);
subplot (2,2,1);
title('Original-image');
imshow (img)
subplot (2,2,2);
plot2d3 ('gnn', cells, count)
title('Histogram-plot-for-original-image!');
Iheq = imhistequal (img);
[count, cells ]=imhist (Iheq);
subplot (2,2,3);
title('Histogram-Equalized-image');
imshow (Iheq);
subplot (2,2,4);
plot2d3 ('gnn', cells, count);
title ('Histogram-plot-for-histogram-equalized-image');

For Historgram Correlation:

clc ;
clear;
close;
img=imread ('F:\lily.jpg');
img=rgb2gray(img);
[count, cells ]= imhist (img);
subplot (2,2,1)
title('Original-image');
imshow (img);
subplot (2,2,2);
plot2d3 ('gnn', cells, count);
title('Histogram-plot-for-original-image!');
Iheq = imhistequal (img);
[count, cells ]=imhist (Iheq);
subplot (2,2,3);
title('Histogram-Equalized-image');
imshow (Iheq)
subplot (2,2,4);
plot2d3 ('gnn', cells, count);
title ('Histogram-plot-for-histogram-equalized-image');

Output:
Result:

The program to plot histogram, histogram equalized image and correlate between
histogram and histogram equalized of original image was executed successfully.
EXP 6:

Smoothing

Aim:

To implement smoothing in scilab

Procedure:

1. Start
2. Open scilab
3. Open a new console window
4. Get the input image from your desktop
5. Implement smoothing
6. Show the image
7. Stop.

Program:

clc ;
clear ;
close;
I= imread ('F:\lily.jpg');
Iblur1 = imfilter(I,2);
Iblur2 = imfilter(I,4);
Iblur3 = imfilter(I,8);
subplot(2,4,1)
imshow(I)
title('Original image')
subplot(2,4,2)
imshow(Iblur1)
title('Smoothed image, \sigma = 2')
subplot(2,4,3)
imshow(Iblur2)
title('Smoothed image, \sigma = 4')
subplot(2,4,4)
imshow(Iblur3)
title('Smoothed image, \sigma = 8')
IblurX1 = imfilter(I,[4 1]);
IblurX2 = imfilter(I,[8 1]);
IblurY1 = imfilter(I,[1 4]);
IblurY2 = imfilter(I,[1 8]);
subplot(2,4,5)
imshow(IblurX1)
title('Smoothed image, \sigma_x = 4, \sigma_y = 1')
subplot(2,4,6)
imshow(IblurX2)
title('Smoothed image, \sigma_x = 8, \sigma_y = 1')
subplot(2,4,7)
imshow(IblurY1)
title('Smoothed image, \sigma_x = 1, \sigma_y = 4')
subplot(2,4,8)
imshow(IblurY2)
title('Smoothed image, \sigma_x = 1, \sigma_y = 8')

Output:

Result:

Implementation of smoothing in scilab done successfully


EXP 7:

Thresholding

Aim:

To implement thresholding in scilab.

Procedure:

1. Start
2. Open scilab
3. Open a new console window
4. Get the input image from your desktop
5. Implement thresholding
6. Show the image
7. Stop.

Program:

img= imread("F:\lily.jpg");
img=rgb2gray(img);
threshold =0.2;
imagen1=~im2bw(img, threshold);
subplot(2,2,1)
title ('threshold=0.1');
imshow (imagen1)
threshold =0.3;
imagen2=~im2bw(img,threshold);
subplot(2,2,2)
title('threshold = 0.2');
imshow(imagen2)
threshold =0.4,
imagen3=~im2bw(img ,threshold);
subplot(2,2,3)
title('threshold=0.3');
imshow(imagen3)
threshold=0.5;
imagen4=~im2bw(img, threshold);
subplot(2,2,4)
title('threshold=0.4');
imshow(imagen
Output:

Result:

Implementation of thresholding in scilab done successfully.


EXP 8:

Edge Detection

Aim:

To implement edge detection in scilab

Procedure:

1. Start
2. Open scilab
3. Open a new console window
4. Get the input image from your desktop
5. Implement edge detection
6. Show the image
7. Stop.

Program:

//edge detection
img= imread('F:\lily.jpg');
img=rgb2gray( img );
subplot(2,3,1)
imshow (img);
e=edge (img );
//Opens new figure
subplot(2,3,2)
imshow (e)
e=edge (img, 'prewitt');
subplot(2,3,3)
imshow (e)
e=edge (img,'canny',[0.06 0.2]);
// Applies canny e detection method
subplot(2,3,4)
imshow (e)
e=edge (img,'fftderiv',0.4);
subplot(2,3,5)
imshow(e)
Output:

Result:

Implementation of edge detection in scilab done successfully


EXP 9:

Hough Transformation

Aim:

To implement Hough transformation in scilab

Procedure:

1. Start
2. Open scilab
3. Open a new console window
4. Get the input image from your desktop
5. Implement Hough transformation
6. Show the image
7. Stop.

Program:

img = imread ('F:\lily.jpg');


img = rgb2gray (img);
subplot(2,2,1);
imshow ( img ) ;
e = edge ( img ,'canny', [0.06 0.2]) ;
// A p p l i e s canny e dg e d e t e c t i o n method
subplot(2,2,2);
imshow ( e)
[HM, rho, th]= imhough(e);
subplot(2,2,3);
scf();Sgrayplot(th,rho,HM',strf="021");
xset("colormap",hotcolormap(64))
Output:

Result:

Implementation of Hough transformation in scilab done successfully


EXP 10:

Feature Extraction

Aim:

To implement feature extraction in scilab

Procedure:

1. Start
2. Open scilab
3. Open a new console window
4. Get the input image from your desktop
5. Implement feature extraction
6. Show the image
7. Stop.

Program:

S= imread ('F:\lily.jpg' );
S = rgb2gray (S) ;
S2 = imrotate(S,45);
// Use the ORB to detect features
f1 = imdetect_ORB(S)
f2 = imdetect_ORB(S2)
// Extract the descriptor
d1 = imextract_DescriptorORB(S,f1);
d2 = imextract_DescriptorORB(S2,f2);
// Feature matching
m = immatch_BruteForce(d1,d2,4)
// Find the 10 best matches
[fout1,fout2,mout] = imbestmatches(f1,f2,m,10);
// Draw the matches
SS = imdrawmatches(S,S2,fout1,fout2,mout);
// Show the comparison
imshow(SS);
Output:

Result:

Implementation of feature extraction in scilab done successfully.


EXP 11a:

Connected Component Analysis

Aim:

To implement connected component analysis using MATLAB.

Procedure:

7. Start
8. Open Matlab
9. Open a new console window
10. Get the input image from your desktop
11. Implement connected component analysis
12. Show the image
13. Stop.

Program:

Img1 =imread('C:\Users\ACER\Desktop\fruit.jpg');
Img2=imresize(Img1,[100 100])
Img3=rgb2gray(Img2)
Img=imbinarize(Img3)
L = bwlabel(Img,8)
figure;
subplot(2,2,1)
imshow(Img1)
title('Original Image')
subplot(2,2,2)
imshow(Img2)
title('Resized Image')
subplot(2,2,3)
imshow(Img3)
title('gray level Image')
subplot(2,2,4)
imshow(L)
title('connected component')
Output:

Result:

The program to implement connected component analysis was executed successfully.


EXP 11b:

Connected Component Analysis

Aim:

To implement connected component analysis using MATLAB.

Procedure:

1. Start
2. Open Matlab
3. Open a new console window
4. Get the input image from your desktop
5. Implement connected component analysis
6. Show the values
7. Stop.

Input:

Img = [0 0 0 0 0 1 1
0 1 1 0 0 1 1
0 1 1 0 0 1 1
0 0 0 1 0 1 1
0 0 0 1 0 1 1
0 0 0 1 0 1 1
0 0 1 1 0 1 1
0 0 0 0 0 1 1];

L = bwlabel(Img,4)
Output:

0 0 0 0 0 3 3
0 1 1 0 0 3 3
0 1 1 0 0 3 3
0 0 0 2 0 3 3
0 0 0 2 0 3 3
0 0 0 2 0 3 3
0 0 2 2 0 3 3
0 0 0 0 0 3 3

Result:

The program to implement connected component analysis was executed successfully.


EXP 12:

Skeletonization

Aim:

To implement skeletonization using MATLAB.

Procedure:

1. Start
2. Open Matlab
3. Open a new console window
4. Get the input image from your desktop
5. Implement skeletonization
6. Show the image
7. Stop.

Program:

I = imread('threads.png');
figure;
subplot(2,2,1)
imshow(I)
title('Original Image')
Icomplement = imcomplement(I);
BW = imbinarize(Icomplement);
subplot(2,2,2)

imshow(BW)
title('Binary Image')
out = bwskel(BW);
subplot(2,2,3)
imshow(labeloverlay(I,out,'Transparency',0))
title('skeletonized Image')
out2 = bwskel(BW,'MinBranchLength',15);
subplot(2,2,4)
imshow(labeloverlay(I,out2,'Transparency',0))
title('skeletonized Pruned Image')
Output:

Result:

The program to implement skeletonization was executed successfully.


EXP 13:

Distance Transform

Aim:

To implement direct transform using MATLAB.

Procedure:

1. Start
2. Open Matlab
3. Open a new console window
4. Get the input image from your desktop
5. Implement direct transform procedure on the image
6. Show the image
7. Stop.

Program:

bw = zeros(200,200);
bw(50,50) = 1; bw(50,150) = 1; bw(150,100) = 1;
D1 = bwdist(bw,'euclidean');
D2 = bwdist(bw,'cityblock');
D3 = bwdist(bw,'chessboard');
D4 = bwdist(bw,'quasi-euclidean');
RGB1 = repmat(rescale(D1), [1 1 3]);
RGB2 = repmat(rescale(D2), [1 1 3]);
RGB3 = repmat(rescale(D3), [1 1 3]);
RGB4 = repmat(rescale(D4), [1 1 3]);

figure
subplot(2,2,1), imshow(RGB1), title('Euclidean')
hold on, imcontour(D1)
subplot(2,2,2), imshow(RGB2), title('Cityblock')
hold on, imcontour(D2)
subplot(2,2,3), imshow(RGB3), title('Chessboard')
hold on, imcontour(D3)
subplot(2,2,4), imshow(RGB4), title('Quasi-Euclidean')
hold on, imcontour(D4)
Output:

Result:

The program to implement direct transform was executed successfully.


EXP 14:

Color Image Enhancement

Aim:

To implement colour image enhancement using MATLAB.

Procedure:

1. Start
2. Open Matlab
3. Open a new console window
4. Get the input image from your desktop
5. Implement enhancement of color image
6. Show the image
7. Stop.

Program:

clc;
clear all;
close all;
a1 = imread('peppers.png');
a = im2double(a1);
[m,n,k] = size(a);
ar = a(:,:,1);
ag = a(:,:,2);
ab = a(:,:,3);
br = 0.4*ar;
bg = 0.4*ag;
bb = 0.4*ab;
c = zeros(m,n,k);
c(:,:,1) = br;
c(:,:,2) = bg;
c(:,:,3) = bb;
figure;
subplot(1,2,1)
imshow(a)
title("original image")
subplot(1,2,2)
imshow(c)
title("enhanced image")
Output:

Result:

The program to implement colour image enhancement was executed successfully.


EXP 15:

Dilation and Erosion

Aim:

To implement dilation and erosion using MATLAB.

Procedure:

1. Start
2. Open Matlab
3. Open a new console window
4. Get the input image from your desktop
5. Implement dilation and erosion
6. Show the image
7. Stop.

Program:

BW1 = imread('circbw.tif');
figure;
subplot(1,3,1)
imshow(BW1)
title('original image')
SE = strel('rectangle',[40 30]);
BW2 = imerode(BW1,SE);
subplot(1,3,2)
imshow(BW2)
title('Erosion image')
BW3 = imdilate(BW2,SE);
subplot(1,3,3)
imshow(BW3)
title('Dilation image')
Output:

Result:

The program to implement dilation and erosion was executed successfully.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy