Download as pdf or txt
Download as pdf or txt
You are on page 1of 40

SIET

2011 1

DIGITAL IMAGE PROCESSING LAB FILE


COMPUTER SCIENCE DEPARTMENT
SABMITTED TO-MR.S.K.SINGH [AP]

SUBMITTED BY-GAGAN YADAV


gaganyadav01@gmail.com
S.I.E.T. 0715310027 FIRST GROUP
Page 1

DIGITAL IMAGE PROCESSING LAB FILE


S.NO NAME OF PRACTICAL DATE PAGE SIGN.

P-01

Spatial Image Enhancement functions on a bitmap - Rotation (Clockwise). Spatial Image Enhancement functions on a bitmap image Enlargement (Double Size). Laplacian Transform on image Low Pass filter on the image

P-02

P-03 P-04

P-05 P-06

Edge detection on an image M-file function(enhacement[varargin]) to provide all basic gray-level transformations,such as, a. Negative b. Log Law transformation c. Power Law transformation d. Contrast stretching e. Thresholding Plot the histrograms of: a) Dark image b) Bright image c) Low contrast image d) High contrast image For each image show the image & its histogram in two different sub regions of the single figure window.

P-07

P-08

M-file function(histogram[r]) to provide histrogram equalization for image- enhancement.

SIET

Page 2

DIGITAL IMAGE PROCESSING LAB FILE

P-09

Spatial domain filters & use convolution function conv2 () to filter the image. Using laplacian filters implement high-boost filtering.

P-10

SIET

Page 3

DIGITAL IMAGE PROCESSING LAB FILE


Program No-1 Aim:- Implement the spatial image enhancement functions on a bitmap image Rotation(clockwise). ProgramI = fitstread(solarspectra.fts); I = mat2gray(I); J = importe(I,-10,bilinear,crop); Imshow(I) Figure,imshow(j)

Result File Name-rotate.m

SIET

Page 4

DIGITAL IMAGE PROCESSING LAB FILE

Original Image

SIET

Page 5

DIGITAL IMAGE PROCESSING LAB FILE

Rotated Image

SIET

Page 6

DIGITAL IMAGE PROCESSING LAB FILE


Program No-2 Aim:- Implement the spatial image enhancement functions on a bitmap image-Enlargement (Double Size). PorogramI=imread(circuit.tif); J=imresize(I,2.0); Imshow(I) Figure,imshow(J)

Result- Screen shot On Next Page

SIET

Page 7

DIGITAL IMAGE PROCESSING LAB FILE

Original Image

SIET

Page 8

DIGITAL IMAGE PROCESSING LAB FILE

Output- Double Size Image

SIET

Page 9

DIGITAL IMAGE PROCESSING LAB FILE


Program No-3 Aim- To apply Laplacian Transform on image Programclc; cloge all; f=imread(moon.tif); w4=fspecial(laplacian,0); w8=[1 1 1;1 -8 1;1 1 1]; f=im2double(f); g4=f-imfilter (f,w4,replicate); g8=f-imfilter (f,w4,replicate); imview(f) figure,imview(g4) figure,imview(g8)

Result- Screen shot On Next Page

SIET

Page 10

DIGITAL IMAGE PROCESSING LAB FILE

Original Image

SIET

Page 11

DIGITAL IMAGE PROCESSING LAB FILE


Program No-4 AIM- To Apply Low Pass filter on the imageProgramclear; close all; Input_image=imread(lena.bmp); Input_img = imread(lena.bmp); %type = input(please choose the filter type: 1.Average filter; 2.Sobel filter(horizontal)); 3.Sobel filter(vertical.); % Add Gaussian noise to image,please check to see the usage of imnoise noisyImg = imnoise(input_img,gaussian); % create 3x3 average filter filter = ones(3,3)/9; % apply the average filter to noisy image filteredImg = filter2(filter,noisyImg); % Display result Figure; colormap(gray); subplot(3,1,1); imshow(input_img); title(Original); subplot(3,1,2); imshow(input_img); title(Original); subplot(3,1,2); imshow(noisyImage); title(noisyImage); subplot(3,1,3); imshow(filterImage,[]); title(Filter Image); result Screen Shots on left side

SIET

Page 12

DIGITAL IMAGE PROCESSING LAB FILE

SIET

Page 13

DIGITAL IMAGE PROCESSING LAB FILE


Program no -05 Aim- Program to Imliment Edge Detection on an image. Programclear; close all; input_img=imread(lena.bmp); % Soble filter horizontal Hfilter=[-1 0 1;-2 0 2;-1 0 1]; % SObel filter vertical Vfilter=[-1-2-1;0 0 0;1 2 1]; % image filtering filteredimg1=filter2(Hfilter,input_img); filteredimg2=filter2(Vfilter,input_img); % Compare results figure; colormap(gray); subplot(3,1,1); imshow(input_img); title(Original); subplot(3,1,2); imshow(filteredImg2,[]); title(Vertical Gradient); %edge detection threshold=80; % use horizontal gradient to detect edge % learn how to use to find to get the index of edge points index=find(abs(filteredImg1(:))>threshold); Edge1=255*ones(1,prod(size(input_img))); Edge1(index)=0; edge1=reshape(edge1,size(input_img)); % use vertical gradient to detect edge index2=find(abs(filteredImg2(:))>threshold); Edge2=255*ones(1,prod(size(input_img))); Edge2(index2)=0; Edge2=reshape(edge2,size(input_img)):

SIET

Page 14

DIGITAL IMAGE PROCESSING LAB FILE


Figure; Subplot(2,1,1); Imshow(edge1/255); title(edge detected via horizontal gradient); subplot(2,1,2); imshow(edge2/255); title(edge detected via vertical gradient);

RESULTScreen Shots on left

SIET

Page 15

DIGITAL IMAGE PROCESSING LAB FILE

SIET

Page 16

DIGITAL IMAGE PROCESSING LAB FILE


Program No-6 Aim: Write a M-File function to provide all the basic gray-level transformations. Code: [A] - Negative function [y]=negative(varargin) a=varargin{1}; [m n]=size(a); for i=1:1:m for j=1:1:n b=a(i,j); c=255-b; a(i,j)=c; end end mat2gray(a) y=a

Output: >>a=imread('cam.bmp') >>imshow(a) >>b=negative(a) >>imshow(b)

SIET

Page 17

DIGITAL IMAGE PROCESSING LAB FILE

Original Image

Output Image

SIET

Page 18

DIGITAL IMAGE PROCESSING LAB FILE


[B] - Log Transformation function [y]=logtran(varargin) aa=varargin{1}; [m n]=size(aa); z=varargin{2}; a=im2double(aa); for i=1:1:m for j=1:1:n b=a(i,j); c=z*log(1+b); a(i,j)=c; end end y=a

Output: >>a=imread('cam.bmp') >>imshow(a) >>b=logtran(a,2) >>imshow(b) >>b=logtran(a,5) >>imshow(b)

SIET

Page 19

DIGITAL IMAGE PROCESSING LAB FILE

Original Image

SIET

Page 20

DIGITAL IMAGE PROCESSING LAB FILE


[C]Code: function [y]=powerlaw(varargin) aa=varargin{1}; [m n]=size(aa); z=varargin{2}; a=im2double(aa); aa=a.^z mat2gray(aa) y=aa Power Law Transformation

Output: >>a=imread('cam.bmp') >>imshow(a) >>b=powerlaw(a,3) >>imshow(b)

SIET

Page 21

DIGITAL IMAGE PROCESSING LAB FILE

Original Image

Output Image

SIET

Page 22

DIGITAL IMAGE PROCESSING LAB FILE

[D] - Contrast Streching Code: function [y]=contraststretch1(varargin) aa=varargin{1}; [m n]=size(aa); a=im2double(aa); sum=0 for i=1:1:m for j=1:1:n sum=sum+a(i,j); end end sum pro=m*n; level=sum/pro;(varargin) S = 1./(1+(level./a).^2) mat2gray(S) y=S

Output: >>a=imread('cam.bmp') >>imshow(a) >>b=contraststretch(a) >>imshow(b)

SIET

Page 23

DIGITAL IMAGE PROCESSING LAB FILE

Original Image

Output Image

SIET

Page 24

DIGITAL IMAGE PROCESSING LAB FILE

[E]- Thresholding Code: function [y]=threshold(varargin) aa=varargin{1}; [m n]=size(aa); a=im2double(aa); sum=0 for i=1:1:m for j=1:1:n sum=sum+a(i,j); end end sum pro=m*n; level=sum/pro; for i=1:1:m for j=1:1:n if a(i,j)<level a(i,j)=0; else a(i,j)=1; end end end mat2gray(a) y=a

Output: >>a=imread('cam.bmp') >>imshow(a) >>b=threshold(a) >>imshow(b)

SIET

Page 25

DIGITAL IMAGE PROCESSING LAB FILE

Original Image

Output Image

SIET

Page 26

DIGITAL IMAGE PROCESSING LAB FILE


Program No-07 Aim: Write a M-File function to plot the histogram of the given image. Code: Plot Histogram function histogram(varargin) u=varargin{1}; [m n]=size(u); h=zeros(1,255); for j=1:1:m for k=1:1:n if u(j,k)==0 u(j,k)=1; end end end for j=1:1:m for k=1:1:n a=u(j,k); h(a)=h(a)+1; end end figure(1) imshow(u) figure(2) bar(h)

Output: >>a=imread('cam.bmp') >>histogram(a)

SIET

Page 27

DIGITAL IMAGE PROCESSING LAB FILE

SIET

Page 28

DIGITAL IMAGE PROCESSING LAB FILE


Program No-08 Equalize the histogram for Image Enhancement Code function histogramequalize(varargin) u=varargin{1}; [m n]=size(u); h=zeros(1,255); z=zeros(1,255); maxim=max((max(u))); c=m*n; for j=1:1:m for k=1:1:n if u(j,k)==0 u(j,k)=1; end end end for j=1:1:m for k=1:1:n a=u(j,k); h(a)=h(a)+1; end end pdf=h/c; cdf(1)=pdf(1); for i=2:1:maxim cdf(i)=pdf(i)+cdf(i-1) end for i=1:1:maxim new(i)=cdf(i)*maxim; round(new(i)); end for i=1:1:maxim if new(i)==0 new(i)=new(i)+1; end end for j=1:1:m for k=1:1:n

SIET

Page 29

DIGITAL IMAGE PROCESSING LAB FILE


temp=u(j,k); b(j,k)=new(temp); a=b(j,k); z(a)=z(a)+1; end end b=b-1; figure(1) imshow(u) figure(2) bar(h) figure(3) imshow(b) figure(4) bar(z)

OUTPUT: >>a=imread('cam.bmp') >>histogramequalize(a)

SIET

Page 30

DIGITAL IMAGE PROCESSING LAB FILE

SIET

Page 31

DIGITAL IMAGE PROCESSING LAB FILE

SIET

Page 32

DIGITAL IMAGE PROCESSING LAB FILE


Aim: To remove Gaussian Noise from the given image. Code: function lpfgauss(varargin) aa=varargin{1} f=double(aa) ab=imnoise(aa,'gaussian'); a=double(ab) w=[1 1 1;1 1 1;1 1 1]/9 [m n]=size(a) for i=2:1:m-1 for j=2:1:n-1 a1(i,j)=w(1)*a(i-1,j-1)+w(2)*a(i-1,j)+w(3)*a(i-1,j+1)+w(4)*a(i,j1)+w(5)*a(i,j)+w(6)*a(i,j+1)+w(7)*a(i+1,j1)+w(8)*a(i+1,j)+w(9)*a(i+1,j+1); end end figure(1) imshow(uint8(a)) figure(2) imshow(uint8(a1))

Output: >>a=imread('cam.bmp') >>lpfgauss(a)

SIET

Page 33

DIGITAL IMAGE PROCESSING LAB FILE

SIET

Page 34

DIGITAL IMAGE PROCESSING LAB FILE


Aim: To provide local enhancement using histogram processing. Code: function localhistoprocess(varargin) im=varargin{1}; %im=im2double(im); [row col]=size(im); max_im=max(max(im)); h=zeros(1,max_im+1); %first 120*120 block for n=1:1:120 for m=1:1:120 a(n,m)=im(n,m); end end %histogram of first block a=a+1; for n=1:1:120 for m=1:1:120 t=a(n,m); h(t)=h(t)+1; end end figure(1) bar(h) [X,Y]=ginput(1); for n=1:1:120 for m=1:1:120 if a(n,m)<X%threshold a(n,m)=0; else a(n,m)=255; end end end imshow(uint8(a)); % second block for n=1:1:120 for m=121:1:240 b(n,m-120)=im(n,m); end

SIET

Page 35

DIGITAL IMAGE PROCESSING LAB FILE


end %histogram of second block b=b+1; for n=1:1:120 for m=1:1:120 t=b(n,m); h(t)=h(t)+1; end end figure(2) bar(h) [X,Y]=ginput(1); for n=1:1:120 for m=1:1:120 if b(n,m)<X%threshold b(n,m)=0; else b(n,m)=255; end end end imshow(uint8(b)); % third block for n=121:1:240 for m=1:1:120 c(n-120,m)=im(n,m); end end %histogram of third block c=c+1; for n=1:1:120 for m=1:1:120 t=c(n,m); h(t)=h(t)+1; end end figure(3) bar(h) [X,Y]=ginput(1); for n=1:1:120 for m=1:1:120 if c(n,m)<X%threshold

SIET

Page 36

DIGITAL IMAGE PROCESSING LAB FILE


c(n,m)=0; else c(n,m)=255; end end end imshow(uint8(c)); % final block for n=121:1:row for m=121:1:col d(n-120,m-120)=im(n,m); end end %histogram of final block d=d+1; for n=1:1:120 for m=1:1:120 t=d(n,m); h(t)=h(t)+1; end end figure(4) bar(h) [X,Y]=ginput(1); for n=1:1:120 for m=1:1:120 if d(n,m)<X%threshold d(n,m)=0; else d(n,m)=255; end end end imshow(uint8(d)); s=[a b;c d] figure(5); imshow(uint8(s)); OUTPUT: >>a=imread('cam.bmp') >>imshow(a) >>localhistoprocess(a)

SIET

Page 37

DIGITAL IMAGE PROCESSING LAB FILE

SIET

Page 38

DIGITAL IMAGE PROCESSING LAB FILE

SIET

Page 39

DIGITAL IMAGE PROCESSING LAB FILE

SIET

Page 40

You might also like