Verfasst am: 30.06.2009, 10:29
Titel: adapthisteq - warum nur auf UINT8 möglich?
Hallo,
ich versuche seit einer ganzen Weile die 'adapthisteq' Funktion auf Werten jenseits der '256' Grauwerte zu nutzen. Leider klappt das ganz und gar nicht.
Ich möchte die Funktion nutzen um den Kontrast von HDR-Bildern zu optimieren. Hier treten Werte zwischen 0...65500 auf - leider scheint das der Algorithmus nicht zu verstehen obwohl die Quellen so aussehen, als müsste es auf beliebigen Wertebereichen funktionieren.
In der Tat heisst es in der Doku "Grayscale image I can be of class uint8, uint16, int16, single, or double. The output image J has the same class as I.". Es sollte also gehen. Wie immer: Ein konkretes Beispiel mit Bild und Befehlen hilft es nachzuvollziehen.
Ich habe das ganze sogar schon in C++ und OpenCV nachprogrammiert, es ist aber tatsächlich so, dass da bei den Normierungen die im Matlab-Code vorgenommen werden wohl irgendetwas schief läuft.
Ich tippe mal auf die Mex-Implementation von 'grayxform'. Leider konnte ich es bis jetzt noch nicht so hinbiegen, dass es funktionieren würde.
Ich habe die Funktion schon auf den Kopf gestellt, sobal der Wertebereich die 255 überschreitet kommt nichts mehr ordentliches raus - egal ob im 'Originalen Range' oder in 'Full Range'.
a_clahe = adapthisteq(a,'ClipLimit',0.1,'NumTiles',[22],'Range','original')
??? Error using ==> grayxform
Elements of transformation array outside the range [0,1].
Error in ==> adapthisteq>makeClaheImage at 401 double(grayxform(imgPixVals,ulMapTile))
Error in ==> adapthisteq at 162
out = makeClaheImage(I, tileMappings, numTiles, selectedRange,
numBins,...
So ich habs noch selbst rausgefunden. Der Algorithmus möchte zwingend Werte zwischen 0...255 oder von 0...1. Hat man also doubles oder ähnliches muss man diese zunächst in den Bereich 0...1 normieren! Dann funktioniert auch die Funktion!
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.