Effacer les filtres
Effacer les filtres

I want to know if we can implement histogram equalization without the histeq function?

1 vue (au cours des 30 derniers jours)
Ali
Ali le 6 Déc 2011
Commenté : Image Analyst le 7 Nov 2021
I have a project and I have to implement histogram equalization without using the histeq function anybody have any idea ?

Réponses (3)

Image Analyst
Image Analyst le 6 Déc 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.

Sean de Wolski
Sean de Wolski le 6 Déc 2011
Probably worth a read

Jurgen
Jurgen le 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 commentaires
Musab Abid
Musab Abid le 7 Nov 2021
how can we implement it on a image?
Image Analyst
Image Analyst le 7 Nov 2021
@Musab Abid just have grayLevels be your image, like
grayLevels = imread('moon.tif');

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by