Digital Image Processing Codes For Engg
Digital Image Processing Codes For Engg
figure(1)
imshow(a)
figure(2)
imshow(b,[0 255])
figure(3)
stem(count)
figure(4)
stem(countb)
figure(2)
imshow(a),title('output image');
case 2
w=[-1 -1 -1; -1 8 -1; -1 -1 -1];
p=0;
for i=2:r+1
for j=2:c+1
b(i,j)=a(i-1,j-1);
end
end
for i=2:r+1
for j=2:c+1
for m=1:3
for n=1:3
p=p+(w(m,n)*b((i-2)+m,(j-2)+n));
end
end
p=abs(p);
a(i-1,j-1)=(p/9);
p=0;
end
end
k= input('Enter Highboost Coefficient:');
a=orig_image - a;
a= orig_image + (k*a);
figure(3)
imshow(a),title('output image');
case 3
disp('Incorrect option')
end
clc;
fignum=1;
a=imread('mic','bmp');
imshow(a);
%a=255*ones(32);
a=double(a);
figure(fignum)
[m n]=size(a);
sqr=8;
%b is 8*8 window
b=zeros(8);
m1=m/sqr-1;
n1=n/sqr-1;
for x=0:m1
for y=0:n1
%extract b
for i=1:sqr
for j=1:sqr
b(i,j)=a(sqr*x+i,sqr*y+j);
end
end
for u=1:sqr
for v=1:sqr
b1=0;
for i=1:sqr
for j=1:sqr
b1=b1+b(i,j)*cos(pi*(u-1)*(i-0.5)/sqr)*cos(pi*(v-1)*(j-0.5)/sqr);
end
end
if u==1
ku=(1/sqr)^0.5;
else
ku=(2/sqr)^0.5;
end
if v==1
kv=(1/sqr)^0.5;
else
kv=(2/sqr)^0.5;
end
c(u,v)=ku*kv*b1;
d(sqr*x+u,sqr*y+v)=c(u,v);
end
end
end
end
fignum=fignum+1;
figure(fignum)
imshow(d,[0 255])
for x=0:m1
for y=0:n1
%extract b
for i=1:sqr
for j=1:sqr
b(i,j)=d(sqr*x+i,sqr*y+j);
end
end
for u=1:sqr
for v=1:sqr
b1=0;
for i=1:sqr
for j=1:sqr
if i==1
ki=(1/sqr)^0.5;
else
ki=(2/sqr)^0.5;
end
if j==1
kj=(1/sqr)^0.5;
else
kj=(2/sqr)^0.5;
end
b1=b1+b(i,j)*cos(pi*(i-1)*(u-0.5)/sqr)*cos(pi*(j-1)*(v-0.5)/sqr)*ki*kj;
end
end
d1(sqr*x+u,sqr*y+v)=b1;
end
end
end
end
fignum=fignum+1;
figure(fignum)
imshow(d1,[0 255])
7.Matlab code for Edge detection using Sobel, Prewitt and Roberts
operators
clc;
im=imread('car1.bmp');
imgray=rgb2gray(im);
figure;imshow(imgray);title('INPUT IMAGE');
sobelv=[-1 0 1; -2 0 2; -1 0 1];
sobelh=sobelv';
imsobv=conv2(imgray,sobelv);
imsobh=conv2(imgray,sobelh);
figure;
imshow(imsobv);title('VERTICAL EDGES BY SOBEL OPERATOR');
imshow(imsobh);title('HORIZONTAL EDGES BY SOBEL OPERATOR');
prewittv=[-1 0 1;-1 0 1; -1 0 1];
prewitth=prewittv';
impreh=conv2(imgray,prewitth);
imprev=conv2(imgray,prewittv);
figure;
imshow(imprev);title('VERTICAL EDGES BY PREWITT OPERATOR');
imshow(impreh);title('HORIZONTAL EDGES BY PREWITT OPERATOR');
robertf=[-1 0; 0 1];
robertb=[0 -1; 1 0];
imrobf=conv2(imgray,robertf);
imrobb=conv2(imgray,robertb);
figure;
imshow(imrobf);title('FORWARD SLANT EDGES BY ROBERT OPERATOR');
imshow(imrobb);title('BACKWARD SLANT EDGES BY ROBERT OPERATOR');
8.Matlab code for Morphological operations- erosion, dilation, opening & closing on
binary Image.
clc;
clear;
close all;
im=imread('mor.bmp');
imgray=rgb2gray(im);
figure(1)
imshow(imgray);title('INPUT IMAGE');
[m,n]=size(imgray);
immap=zeros(m,n);
for i=1:m
for j=1:n
if imgray(i,j)==0
immap(i,j)=1;
end
end
end
immap2=zeros(m,n);
mask=ones(3,3);
matk=zeros(3,3);
sum1=0;
for i=2:m-1
for j=2:n-1
matk=immap(i-1:i+1,j-1:j+1);
sum1=sum(sum(matk.*mask));
if (sum1==9)
immap2(i,j)=1;
end
end
end
imre=255*ones(m,n);
for i=1:m
for j=1:n
if (immap2(i,j)==1)
imre(i,j)=0;
end
end
end
imre=uint8(imre);
figure(2)
imshow(imre);title(' IMAGE AFTER EROSION');
immap3=zeros(m,n);
sum1=0;
for i=2:m-1
for j=2:n-1
matk=immap(i-1:i+1,j-1:j+1);
sum1=sum(sum(matk.*mask));
if (sum1~=0)
immap3(i,j)=1;
end
end
end
imre=255*ones(m,n);
for i=1:m
for j=1:n
if (immap3(i,j)==1)
imre(i,j)=0;
end
end
end
imre=uint8(imre);
figure(3)
imshow(imre);title(' IMAGE AFTER DILATION');
immap4=zeros(m,n);
sum1=0;
for i=2:m-1
for j=2:n-1
matk=immap(i-1:i+1,j-1:j+1);
sum1=sum(sum(matk.*mask));
if (sum1==9)
immap4(i,j)=1;
end
end
end
immap5=zeros(m,n);
sum1=0;
for i=2:m-1
for j=2:n-1
matk=immap4(i-1:i+1,j-1:j+1);
sum1=sum(sum(matk.*mask));
if (sum1~=0)
immap5(i,j)=1;
end
end
end
imre=255*ones(m,n);
for i=1:m
for j=1:n
if (immap5(i,j)==1)
imre(i,j)=0;
end
end
end
imre=uint8(imre);
figure(4)
imshow(imre);title('IMAGE AFTER OPENING');
immap6=zeros(m,n);
sum1=0;
for i=2:m-1
for j=2:n-1
matk=immap(i-1:i+1,j-1:j+1);
sum1=sum(sum(matk.*mask));
if (sum1~=0)
immap6(i,j)=1;
end
end
end
immap7=zeros(m,n);
sum1=0;
for i=2:m-1
for j=2:n-1
matk=immap6(i-1:i+1,j-1:j+1);
sum1=sum(sum(matk.*mask));
if (sum1==9)
immap7(i,j)=1;
end
end
end
imre=255*ones(m,n);
for i=1:m
for j=1:n
if (immap7(i,j)==1)
imre(i,j)=0;
end
end
end
imre=uint8(imre);
figure(5)
imshow(imre);title('IMAGE AFTER CLOSING');