MATLAB Answers

0

Code computes histogram equalization not similar to Matlab's histeq function

Asked by Mohsin Shah on 5 May 2018
Latest activity Answered by xiao
on 11 May 2018
I have a written a simple code for histogram equalization based on this formula: HistEq = (max gray leve/total no of pixels)*cumulative sum(count). I wonder why the result is quite different from Matlab's function histeq? Can someone please figure out where I am wrong?
clear;
clc;
% Input image
Img = imread('lena.bmp');
I = double(Img);
[H, W] = size(I);
total = H * W;
count = imhist(Img);
maxL = 255;
csum = 0; % Initialize to zero
cumuSum = zeros(1, length(count))';
for idx = 1 : length(count)
csum = csum + count(idx);
cumuSum(idx) = csum;
end
HistEq = round(maxL/total * cumuSum);
HIm = zeros(H, W);
for idx = 1 : H
for idy = 1 : W
HIm(idx, idy) = HistEq(Img(idx, idy));
end
end
<<
>>

  0 Comments

Sign in to comment.

1 Answer

Answer by xiao
on 11 May 2018

you can refer the function (histogram equalization) doc page and there are related references, then you can check the algorithm details.

  0 Comments

Sign in to comment.