Wednesday, 28 May 2014

HISTOGRAM EQUALIZATION IN MATLAB

/*CSEMATTER.BLOGSPOT.IN
PROGRAM FOR HISTOGRAM EQUALIZATION IN MATLAB*/


im1=imread('atul1.jpg');
im=rgb2gray(im1);
im=imresize(im,[256,256]);
numofpixels=size(im,1)*size(im,2);
figure(1);
subplot(1,2,1);
imshow(im);
subplot(1,2,2);
imhist(im);
HIm=uint8(zeros(size(im,1),size(im,2)));
freq=zeros(256,1);
probf=zeros(256,1);
probc=zeros(256,1);
cum=zeros(256,1);
output=zeros(256,1);
for i=1:size(im,1)
    for j=1:size(im,2)
        value=im(i,j);
        freq(value+1)=freq(value+1)+1;
        probf(value+1)=freq(value+1)/numofpixels;
   end
end
sum=0;
no_=255;
for i=1:size(probf)
   sum=sum+freq(i);
   cum(i)=sum;
   probc(i)=cum(i)/numofpixels;
   output(i)=round(probc(i)*no_);
end

for i=1:size(im,1)
    for j=1:size(im,2)
     HIm(i,j)=output(im(i,j)+1);
    end
end
figure(2);
subplot(1,2,1);
imshow(HIm);
subplot(1,2,2);
imhist(HIm);

No comments:

Post a Comment