You are on page 1of 15

Muhammad Abdullah

169,8C
Question 1:
Negative Image:
>> i1=imread('C:\Users\Abd-ur-Rehman\Desktop\sany.png');
>> i2=imread('C:\Users\Abd-ur-Rehman\Desktop\as.png');
>> i3=imread('C:\Users\Abd-ur-Rehman\Desktop\as1.png');
>> g1=rgb2gray(i1);
>> g2=rgb2gray(i2);
>> g3=rgb2gray(i3);
>> pg1=max(max(g1));
>> ng1=pg1-g1;
>> pg2=max(max(g2));
>> ng2=pg2-g2;
>> pg3=max(max(g3));
>> ng3=pg3-g3;
>> subplot(3,3,1),imshow(g1),title('Original
Image'),subplot(3,3,2),imshow(g2),title('Original
Image'),subplot(3,3,3),imshow(g3),title('Original
Image'),subplot(3,3,4),imshow(ng1),title('Negative
Image'),subplot(3,3,5),imshow(ng2),title('Negative
Image'),subplot(3,3,6),imshow(ng3),title('Negative Image');
Log Transformation
>>d1=im2double(g1);
>>d2=im2double(g2);
>>d3=im2double(g3);
>>lt1=d1;
>>lt2=d2;
>>lt3=d3;
>>[r1, c1]=size(d1);
>>[r2, c2]=size(d2);
>>[r3, c3]=size(d3);
>>fac=1;
>> for i=1:r1
for j=1:c1
lt1(i,j)=fac*log(1+d1(i,j));
end
end
>> for i=1:r2
for j=1:c2
lt2(i,j)=fac*log(1+d2(i,j));
end
end
>> for i=1:r3
for j=1:c3
lt3(i,j)=fac*log(1+d3(i,j));
end
end
>> subplot(3,3,1),imshow(d1),title('Original
Image'),subplot(3,3,2),imshow(d2),title('Original
Image'),subplot(3,3,3),imshow(d3),title('Original
Image'),subplot(3,3,4),imshow(lt1),title('Log
Tranformation'),subplot(3,3,5),imshow(lt2),title('Log
Transformation'),subplot(3,3,6),imshow(lt3),title('Log Transformation');
>> %%PowerLogTransformation
>> gam=2;
>> plt1=d1;
>> plt2=d2;
>> plt3=d3;
>> for i=1:r1
for j=1:c1
plt1(i,j)=fac*(d1(i,j)^gam);
end
end
>> for i=1:r2
for j=1:c2
plt2(i,j)=fac*(d2(i,j)^gam);
end
end
>> for i=1:r3
for j=1:c3
plt3(i,j)=fac*(d3(i,j)^gam);
end
end
>> subplot(3,3,1),imshow(d1),title('Original
Image'),subplot(3,3,2),imshow(d2),title('Original
Image'),subplot(3,3,3),imshow(d3),title('Original
Image'),subplot(3,3,4),imshow(plt1),title('Power Log
Trans'),subplot(3,3,5),imshow(plt2),title('Power Log
Trans'),subplot(3,3,6),imshow(plt3),title('Power Log Trans');
Question 2:
>> i1=imread('C:\Users\Abd-ur-Rehman\Desktop\as.png');
>> i2=imread('C:\Users\Abd-ur-Rehman\Desktop\as1.png');
>> i3=imread('C:\Users\Abd-ur-Rehman\Desktop\sany.png');
>> g1=rgb2gray(i1);
>> g2=rgb2gray(i2);
>> g3=rgb2gray(i3);
>> ni1=imnoise(g1,'salt & pepper',0.3);
>> ni2=imnoise(g2,'salt & pepper',0.3);
>> ni3=imnoise(g3,'salt & pepper',0.3);
>> %%Average Filter
>> f=1/9*[1,1,1;1,1,1;1,1,1];
>> avg1=filter2(f,ni1);
>> avg2=filter2(f,ni2);
>> avg3=filter2(f,ni3);
>>subplot(3,3,1), imshow(g1), title('Original'),subplot(3,3,2), imshow(g2),
title('Original'),subplot(3,3,3), imshow(g3), title('Original'),subplot(3,3,4),
imshow(ni1), title('NoiseImg1'),subplot(3,3,5), imshow(ni2),
title('NoiseImg2'),subplot(3,3,6), imshow(ni3), title('NoiseImg3'),subplot(3,3,7),
imshow(uint8(avg1)), title('AvgFilImg1'),subplot(3,3,8), imshow(uint8(avg2)),
title('AvgFilImg2'),subplot(3,3,9), imshow(uint8(avg3)), title('AvgFilImg3');
>> %%%Histogram Equailization
>> h1=histeq(g1);
>> h2=histeq(g2);
>> h3=histeq(g3);
>>subplot(3,3,1),imhist(h1),subplot(3,3,2),imhist(h2),subplot(3,3,3),imhist(h3),sub
plot(3,3,4),imshow(h1),title('Hist eq'),subplot(3,3,5),imshow(h2),title('Hist
eq'),subplot(3,3,6),imshow(h3),title('Hist eq');
>> %%Median Filter
>> med1=medfilt2(ni1,[3 3]);
>> med2=medfilt2(ni2,[3 3]);
>> med3=medfilt2(ni3,[3 3]);
>> subplot(3,3,1), imshow(g1), title('Original'),subplot(3,3,2), imshow(g2),
title('Original'),subplot(3,3,3), imshow(g3), title('Original'),subplot(3,3,4),
imshow(ni1), title('NoiseImg1'),subplot(3,3,5), imshow(ni2),
title('NoiseImg2'),subplot(3,3,6), imshow(ni3), title('NoiseImg3'),subplot(3,3,7),
imshow(uint8(med1)), title('MedFilImg1'),subplot(3,3,8), imshow(uint8(med2)),
title('MedFilImg2'),subplot(3,3,9), imshow(uint8(med3)), title('MedFilImg3');
>> %%Max Filter
>> nm1=zeros(size(ni1));
>> m=padarray(ni1,[1 1]);
>> x=[1:3]';
>> y=[1:3]';
for i=1:size(m,1)-2
for j=1:size(m,2)-2
w1=reshape(m(i+x-1,j+y-1),[],1);
nm1(i,j)=max(w1);
end
end
mfil1=uint8(nm1);
>> nm2=zeros(size(ni2));
m1=padarray(ni1,[1 1]);
for i=1:size(m1,1)-2
for j=1:size(m1,2)-2
w2=reshape(m1(i+x-1,j+y-1),[],1);
nm2(i,j)=max(w2);
end
end
mfil2=uint8(nm2);
>> nm3=zeros(size(ni3));
>> m2=padarray(ni3,[1 1]);
>> for i=1:size(m2,1)-2
for j=1:size(m2,2)-2
w3=reshape(m2(i+x-1,j+y-1),[],1);
nm3(i,j)=max(w3);
end
end
>> mfil3=uint8(nm3);
subplot(3,3,1), imshow(g1), title('Original'),subplot(3,3,2), imshow(g2),
title('Original'),subplot(3,3,3), imshow(g3), title('Original'),subplot(3,3,4),
imshow(ni1), title('NoiseImg1'),subplot(3,3,5), imshow(ni2),
title('NoiseImg2'),subplot(3,3,6), imshow(ni3), title('NoiseImg3'),subplot(3,3,7),
imshow(uint8(mfil1)), title('MaxFilImg1'),subplot(3,3,8), imshow(uint8(mfil2)),
title('MaxFilImg2'),subplot(3,3,9), imshow(uint8(mfil3)), title('MaxFilImg3');
>>%%Min Filter
>> nm1=zeros(size(ni1));
>> m=padarray(ni1,[1 1]);
>> x=[1:3]';
>> y=[1:3]';
for i=1:size(m,1)-2
for j=1:size(m,2)-2
w1=reshape(m(i+x-1,j+y-1),[],1);
nm1(i,j)=min(w1);
end
end
mnfil1=uint8(nm1);
>> nm2=zeros(size(ni2));
m1=padarray(ni1,[1 1]);
for i=1:size(m1,1)-2
for j=1:size(m1,2)-2
w2=reshape(m1(i+x-1,j+y-1),[],1);
nm2(i,j)=min(w2);
end
end
mnfil2=uint8(nm2);
>> nm3=zeros(size(ni3));
>> m2=padarray(ni3,[1 1]);
>> for i=1:size(m2,1)-2
for j=1:size(m2,2)-2
w3=reshape(m2(i+x-1,j+y-1),[],1);
nm3(i,j)=min(w3);
end
end
>> mnfil3=uint8(nm3);
subplot(3,3,1), imshow(g1), title('Original'),subplot(3,3,2), imshow(g2),
title('Original'),subplot(3,3,3), imshow(g3), title('Original'),subplot(3,3,4),
imshow(ni1), title('NoiseImg1'),subplot(3,3,5), imshow(ni2),
title('NoiseImg2'),subplot(3,3,6), imshow(ni3), title('NoiseImg3'),subplot(3,3,7),
imshow(uint8(mnfil1)), title('MinFilImg1'),subplot(3,3,8), imshow(uint8(mnfil2)),
title('MinFilImg2'),subplot(3,3,9), imshow(uint8(mnfil3)), title('MinFilImg3');
>>%%Gaussian Filter
>> gf1 = imgaussfilt(ni1,2);
>> gf2 = imgaussfilt(ni2,2);
>> gf3 = imgaussfilt(ni3,2);
>> subplot(3,3,1), imshow(g1), title('Original'),subplot(3,3,2), imshow(g2),
title('Original'),subplot(3,3,3), imshow(g3), title('Original'),subplot(3,3,4),
imshow(ni1), title('NoiseImg1'),subplot(3,3,5), imshow(ni2),
title('NoiseImg2'),subplot(3,3,6), imshow(ni3), title('NoiseImg3'),subplot(3,3,7),
imshow(uint8(gf1)), title('GausFilImg1'),subplot(3,3,8), imshow(uint8(gf2)),
title('GausFilImg2'),subplot(3,3,9), imshow(uint8(gf3)), title('GausFilImg3');
I say Median Filter is so far the best filter for removing salt and pepper noise as
compared to the other filters if you want the noise to be completely removed and it
also gives a smooth picture.

You might also like