MATLAB: How to centralizes 98% energy of the histogram

histogramImage Processing Toolbox

hi i wanted to write a code for this but i dont know how to get 98% energy of histogram. the following is the actual data which i want to write in code.
h1= brightness histogram
F = b-a
where (a,b) satisfies that the region [a,b] centralizes 98% energy of the brightness histogram. Let d be the index of the bin with the maximal volume, i.e. h(d)=max(h1). Starting from the dth bin, the histogram is searched step by step alternately towards the two sides until the summation reaches 98% of the total energy. plz help me……………

Best Answer

Try this - a better algorithm, in my opinion:
[pixelCounts, grayLevels= = imhist(grayImage, 256);
cdf = cumsum(pixelCounts) / numel(grayImage);
aIndex = find(cdf > 0.01, 1, 'first');
a = grayLevels(aIndex);
bIndex = find(cdf > 0.99, 1, 'first');
b = grayLevels(bIndex);