You are on page 1of 17

2.

Matlab code for statistical properties- mean, standard deviation, profile,


variance and Histogram plotting.
clc;
a=imread('car1','BMP');
[x y]=size(a);
for i=0:255
count(i+1)=0;
for m=1:x
for n=1:y
if(a(m,n)==i)
count(i+1)=count(i+1)+1;
end
end
end
end
mean=0;
var=0;
for i=0:255
mean=mean+i*count(i+1)/(x*y);
var=var + i*i*count(i+1)/(x*y);
end
var=var-x*y;
std=var^0.5
mean
var
figure(1)
stem(0:255,count)
r=input('Enter row for which profile is to be plotted');
for i=0:255
countp(i+1)=0;
for n=1:y
if(a(r,n)==i)
countp(i+1)=countp(i+1)+1;
end
end
end
figure(2)
stem(0:255,countp)

3.Matlab code for Histogram equalization & modification


clc;
a=imread('car4','BMP');
%a=a*0.10;
maxa=max(a(:));
mina=min(a(:));
for i=0:255
count(i+1)=0;
for m=1:128
for n=1:128
if(a(m,n)==i)
count(i+1)=count(i+1)+1;
end
end
end
end
cdf(1)=count(1);
for i=1:255
cdf(i+1)=cdf(i)+count(i+1);
end
mincdf=cdf(mina+1);
for i=0:255
if(cdf(i+1)>=mincdf)
newval(i+1)=floor((cdf(i+1)-mincdf)*255/(128*128-mincdf));
else
newval(i+1)=0;
end
end
for i=0:255
for m=1:128
for n=1:128
if(a(m,n)==i)
b(m,n)=newval(i+1);
end
end
end
end
for i=0:255
countb(i+1)=0;
for m=1:128
for n=1:128
if(b(m,n)==i)
countb(i+1)=countb(i+1)+1;
end
end
end
end

figure(1)
imshow(a)
figure(2)
imshow(b,[0 255])
figure(3)
stem(count)
figure(4)
stem(countb)

4a.Matlab code for Gray level transformations such as contrast stretching,


negative
clc;
r1=input('Enter r1(less than 255 and r2)=');
r2=input('Enter r2(less than 255 and greater than r1)=');
s1=input('Enter s1(less than 255 and s2)=');
s2=input('Enter s2(less than 255 and greater than s1)=');
a=imread('car1','BMP');
for i=0:255
if i<=r1
newval(i+1)=i*s1/r1;
elseif i<=r2
newval(i+1)=(i-r1)*(s2-s1)/(r2-r1)+s1;
else
newval(i+1)=(i-r2)*(255-s2)/(255-r2)+s2;
end
end
for i=0:255
for m=1:128
for n=1:128
if a(m,n)==i
b(m,n)=newval(i+1);
end
end
end
end
figure(1)
imshow(a)
figure(2)
imshow(b,[0 255]);
figure(3)
stem(0:255,newval)

4b.Matlab code of power law transformation


clc;
image = imread('car1.bmp');
[r c] = size(image);
cc = input('Enter the value for c: ');
ep = input('Enter the value for gamma: ');
for i = 1 : r
for j = 1 : c
%
imout(i,j)=cc*power(image_double(i,j),ep);
imout(i, j) = cc * power(uint32(image(i, j)), ep);
end
end
figure(1)
imshow(image);
figure(2)
imshow(imout);

5a.Matlab code for Spatial Domain filtering- smoothing


clc;
n = 1;
mask = ones(n);
t = n*n;
img2 = imread('car1.bmp');
figure(1)
imshow(img2);
img = imnoise(rgb2gray(img2),'salt & pepper',0.05);
hold on;
figure(2)
imshow(img);
for i=1+(n-1)/2: size(img,1)-(n-1)/2
for j=1+(n-1)/2: size(img,2)-(n-1)/2
aoi = img(i-(n-1)/2:i+(n-1)/2,j-(n-1)/2:j+(n-1)/2);
img6(i,j) = sum(sum(aoi))/t;
end
end
hold on;
figure(3)
imshow(mat2gray(img6));impixelinfo;
% Spatial domain filtering : Median filter
for i=1+(n-1)/2: size(img,1)-(n-1)/2
for j=1+(n-1)/2: size(img,2)-(n-1)/2
aoi = img(i-(n-1)/2:i+(n-1)/2,j-(n-1)/2:j+(n-1)/2);
y=sort(aoi(:));
img5(i,j) = y((n+1)/2);
end
end
hold on;
figure(4)
imshow(img5);

5b.matlab code for sharpening filters


clc;
fignum=1;
a=imread('car1','BMP');
[r c]=size(a);
orig_image =a;
imshow(orig_image);
disp('1. High PASS FILTER')
disp('2. High BOOST FILTER')
choice =input('Enter Choice:')
for i=1:r+2
for j=1:c+2
b(i,j)=0;
end
end
switch choice
case 1
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

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

6.Matlab code for DCT/IDCT of given image

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');

9a.Matlab code for Pseudo coloring (spatial mode)


clc;
fignum=1;
a=imread('car1','BMP');
imshow(a,[0 255])
a=double(a);
figure(fignum)
[m n]=size(a);
r=zeros(255);
g=r;
b=r;
d=zeros(m,n,3);
for i=1:256
r(i)=(i-1)/255;
r1=(i-1)/255;
b(i)=1-r1;
b1=b(i);
g(i)=r1*b1*4;
end
for i=0:255
j=i+1;
for x=1:m
for y=1:n
if(a(x,y)==i)
d(x,y,1)=r(j);
d(x,y,2)=g(j);
d(x,y,3)=b(j);
end
end
end
end
fignum=fignum+1;
figure(fignum)
imshow(d)

9b.Matlab code for Pseudo coloring (frequency domain)


clc;
a=imread('car1.bmp');
[m n p]=size(a);
a=double(a);
for i=1:m
for j=1:n
if a(i,j)>=0 & a(i,j)<100
op(i,j,1)=a(i,j)+ 80;
op(i,j,2)=a(i,j)+ 10;
op(i,j,3)=a(i,j)+ 10;
end
if a(i,j)>=100 & a(i,j)<120
op(i,j,1)=a(i,j)+ 35;
op(i,j,2)=a(i,j)+ 28;
op(i,j,3)=a(i,j)+ 10;
end
if a(i,j)>=120 & a(i,j)<150
op(i,j,1)=a(i,j)+ 52;
op(i,j,2)=a(i,j)+ 30;
op(i,j,3)=a(i,j)+ 15;
end
if a(i,j)>=150 & a(i,j)<200
op(i,j,1)=a(i,j)+ 50;
op(i,j,2)=a(i,j)+ 80;
op(i,j,3)=a(i,j)+ 90;
end
if a(i,j)>=200 & a(i,j)<=256
op(i,j,1)=a(i,j)+ 60;
op(i,j,2)=a(i,j)+ 60;
op(i,j,3)=a(i,j)+ 60;
end
end
end
figure(2)
imshow (uint8(a)), title('Original Image');
figure(3)
imshow (uint8(op)), title('Pseudo colored Image');

10.Creating noisy image and filtering using MATLAB. 12


clc;
n = 1;
mask = ones(n);
t = n*n;
img2 = imread('car1.bmp');
figure(1)
imshow(img2);
img = imnoise(rgb2gray(img2),'salt & pepper',0.05);
hold on;
figure(2)
imshow(img);
h = input('Enter multidimensional filter H degree: ')
B = imfilter(img2,h);
figure(3)
imshow(B);

You might also like