I want to know if we can implement histogram equalization without the histeq function?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
I have a project and I have to implement histogram equalization without using the histeq function anybody have any idea ?
0 Kommentare
Antworten (3)
Image Analyst
am 6 Dez. 2011
Check out my histogram shaping app:
It will give you a perfectly flat histogram, or any other shape you desire. Otherwise you can do the standard, dumb, imperfect method where you use cumsum() but that won't get you a flat histogram, just a stretched-out/redistributed one.
0 Kommentare
Jurgen
am 15 Nov. 2012
4 bit grayscale example:
grayLevels = (0:15);
%Histogram of image, counts per level:
grayHist = [0 0 40 80 45 11 70 0 0 0 0 0 0 0 0 15];
Make new gray value table with formula:
EQfactor = grayLevels(end)/sum(grayHist);
grayEq = round(EQfactor*cumsum(grayHist));
Finished, Use LUT for equalizing; apply like 'grayEq(im + 1)'
-
Extra info: Use LUT to find new histogram without image data
newGray = zeros(1,length(grayLevels)); % New histogram of image
% Bit messy now:
values = grayHist(grayLevels+1);
newGray(unique(grayEq(grayLevels+1)+1)) = [0 values(values>0)];
stem(newGray);figure;stem(grayHist)
2 Kommentare
Image Analyst
am 7 Nov. 2021
@Musab Abid just have grayLevels be your image, like
grayLevels = imread('moon.tif');
Siehe auch
Kategorien
Mehr zu Histograms finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!