Question

DO NOT use the built in function ”histeq” to do the histogram equalization. Capture an image...

DO NOT use the built in function ”histeq” to do the histogram equalization.

Capture an image with low contrast. Write a Matlab program to do histogram equalization and process your image.

0 0
Add a comment Improve this question Transcribed image text
Answer #1

Matlab Code:

GIm=imread('tire.tif');

numofpixels=size(GIm,1)*size(GIm,2);

figure,imshow(GIm);

title('Original Image');

HIm=uint8(zeros(size(GIm,1),size(GIm,2)));

freq=zeros(256,1);

probf=zeros(256,1);

probc=zeros(256,1);

cum=zeros(256,1);

output=zeros(256,1);


%freq counts the occurrence of each pixel value.

%The probability of each occurrence is calculated by probf.


%The result is shown in the form of a table

figure('Position',get(0,'screensize'));

dat=cell(256,6);


for i=1:256

dat(i,:)={i,freq(i),probf(i),cum(i),probc(i),output(i)};   

end


columnname = {'Bin', 'Histogram', 'Probability', 'Cumulative histogram','CDF','Output'};

columnformat = {'numeric', 'numeric', 'numeric', 'numeric', 'numeric','numeric'};

columneditable = [false false false false false false];

t = uitable('Units','normalized','Position',...

[0.1 0.1 0.4 0.9], 'Data', dat,...

'ColumnName', columnname,...

'ColumnFormat', columnformat,...

'ColumnEditable', columneditable,...

'RowName',[]);

subplot(2,2,2); bar(GIm);

title('Before Histogram equalization');

subplot(2,2,4); bar(HIm);

title('After Histogram equalization');

for i=1:size(GIm,1)

for j=1:size(GIm,2)

value=GIm(i,j);

freq(value+1)=freq(value+1)+1;

probf(value+1)=freq(value+1)/numofpixels;

end

end


sum=0;

no_bins=255;


%The cumulative distribution probability is calculated.

for i=1:size(probf)

sum=sum+freq(i);

cum(i)=sum;

probc(i)=cum(i)/numofpixels;

output(i)=round(probc(i)*no_bins);

end

for i=1:size(GIm,1)

for j=1:size(GIm,2)

HIm(i,j)=output(GIm(i,j)+1);

end

end

figure,imshow(HIm);

title('Histogram equalization');

Add a comment
Know the answer?
Add Answer to:
DO NOT use the built in function ”histeq” to do the histogram equalization. Capture an image...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT