WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

adapthisteq - warum nur auf UINT8 möglich?

 

Hype
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 06.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2009, 10:29     Titel: adapthisteq - warum nur auf UINT8 möglich?
  Antworten mit Zitat      
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.

Hat jemand eine Ahnung was das schief läuft?

Danke für eure Hilfe
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 30.06.2009, 10:40     Titel:
  Antworten mit Zitat      
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.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Hype
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 06.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2009, 12:06     Titel:
  Antworten mit Zitat      
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'.

Ganz komisch...
Private Nachricht senden Benutzer-Profile anzeigen
 
Hype
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 06.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2009, 12:10     Titel:
  Antworten mit Zitat      
Hier mal ein Beispiel:
Code:

% set array
a = [1 2 3 4; 5 6 7 8;9 10 11 12; 13 14 15 16]

% scale array to higher range
a = double(a);
a = a/max(a(:)).*4096;

% compute histogram equalization
 a_clahe = adapthisteq(a,'ClipLimit',0.1,'NumTiles',[2 2],'Range','full')
 


Das Resultat ist ernüchternd:
Code:

a_clahe =

     1     1     1     1
     1     1     1     1
     1     1     1     1
     1     1     1     1
 


Und in 'Range Original'
Code:

a_clahe = adapthisteq(a,'ClipLimit',0.1,'NumTiles',[2 2],'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,...

 
Private Nachricht senden Benutzer-Profile anzeigen
 
Hype
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 06.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2009, 14:31     Titel:
  Antworten mit Zitat      
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!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.