Ich habe eine Reihe von Bildern mit abnehmender Helligkeit, die ich gerne mit Histogramm-Entzerrung korrigieren würde. Ich histeq
auf einige Testdaten angewandt zu lernen, wie die FunktionHistogramm-Entzerrung liefert unerwartete Ergebnisse
% Image that I would like to apply histogram equalization to
C = gallery('wilk',21);
figure, imagesc(C)
E = histeq(C);
figure, imagesc(E);
funktioniert jedoch, wenn ich am Ausgang der histeq
aussehen, bekomme ich ein Ergebnis, das nur zwei eindeutige Werte hat: 0.873
und 1.000
. Wie kommt es, dass die Ausgabe nicht den gesamten Bereich der Eingabe umfasst? Ich würde erwarten, dass es mehr als zwei eindeutige Werte in der Ausgabe gibt.
Warum gehst du nicht einfach tun 'imhist'? Er akzeptiert ein Bild und gibt ein Histogramm in einer Figur aus. Was kommt 'unique (C)' auch zurück, nachdem das Histogramm ausgeglichen wurde? – rayryeng
Bitte zeigen Sie Ihren Histogramm-Ausgleichscode an. In der Zwischenzeit, hast du 'histeq' versucht? – rayryeng
Ah. Ich habe gerade bemerkt, was die Eingabe jetzt ist. Es funktioniert nicht, weil die Eingabe, die Sie angeben, Mist für die Histogrammentzerrung ist. Der dynamische Bereich und die Intensitätsverteilung sind sehr klein, was den Bereich sprengen wird, sobald Sie ihn "normalisieren". Wir empfehlen Ihnen, sich vor der Verwendung der Histogrammentzerrung zu informieren. Versuchen Sie dies auf einem tatsächlichen Bild, bevor Sie fortfahren. Verwenden Sie beispielsweise das Image Processing Toolbox-Bild: 'C = imread ('pout.tif');'. – rayryeng