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

reshape Funktion erzeugt imaginäre Werte

 

asxoniles
Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 05.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.08.2010, 15:21     Titel: reshape Funktion erzeugt imaginäre Werte
  Antworten mit Zitat      
Hallo,

ich habe versucht, von mir erstellte LogLuv Tiff Bilder einzulesen und via matlab tonemap Funktion anzuzeigen.
Dabei erzeugt tonemap mysteriöser weise imaginäre Werte. Ich habe die rgb Daten zuvor mit iptcheckinput überprüft und diese sind alle real (zwischen 0 und 1).

aus matlab tonemap.m:
Code:
function Lab = sRGB2Lab(rgb)
% Convert sRGB values in the range [0,1] to Lab via XYZ.

dims = size(rgb);
rgb = reshape(permute(rgb, [3 1 2]), [3, dims(1) * dims(2)]);


Eine von mir nicht erzeugtes LogLuv Tiff Bild (rgb werte zwischen 0-1) hingegen wird ohne imaginär Anteile umgewandelt.
Auch wird eine von mir erzeugte Radiance Datei mit gleichen Bildinhalt problemlos umgewandelt.
Möglicherweise könnte der Fehler auch bei der Tiff Erstellung entstehen (siehe http://www.gomatlab.de/logluv-tiff-.....laden-tonemap-t13701.html bzgl. Optionen bei tiff Erstellung)
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: 12.08.2010, 15:38     Titel:
  Antworten mit Zitat      
In der Tat mysteriös... Ich habe ein paar Techniken um das Problem einzukreisen. RESHAPE gibt es in verschiedenen Implementationen

Code:


Es ist also wichtig zu wissen von welchem Datentyp permute(rgb, [3 1 2]), [3, dims(1) * dims(2)] ist. Bitte den Code auftrennen:

Code:

test=permute(rgb, [3 1 2]), [3, dims(1) * dims(2)];
whos test
rgb=reshape(test);
 


Ist schon test komplex?

Gibt des Code andere Ergebnisse wenn vorher

Code:

feature('accel','off')
feature('jit','off')
 

genutzt wird?

Funktioniert es auf anderen Rechnern / Versionen / Betriebssystemen anders?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 05.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2010, 00:04     Titel:
  Antworten mit Zitat      
Andreas Goser hat Folgendes geschrieben:
In der Tat mysteriös... Ich habe ein paar Techniken um das Problem einzukreisen. RESHAPE gibt es in verschiedenen Implementationen


Hallo Andreas,

also das str+d auf das reshape öffnet das build-in reshape im pfad: matlab\r2010a\toolbox\matlab\elmat\reshape.m
Zitat:

Es ist also wichtig zu wissen von welchem Datentyp permute(rgb, [3 1 2]), [3, dims(1) * dims(2)] ist. Bitte den Code auftrennen:

Code:

test=permute(rgb, [3 1 2]), [3, dims(1) * dims(2)];
whos test
rgb=reshape(test);
 


Ist schon test komplex?


oha - tatsächlich ist test schon komplex ?! auch ohne dims(1)*dims(2) (was net zu permut gehört)
Code:
test      3x2000x3008            144384000  single    complex  
 

oh krass - ich hab gerade nochmal die layers des rgb bilds mit ipcheckinput durchgecheckt und die B Layer beinhaltet schon komplexe Werte. Ich habe daraufhin die rgb layers mal mit min(min()) untersucht und festgestellt, dass der fehler wohl irgendwo bei der Bilderstellung entstehen muss, da die B-Ebene schon negative Werte enthält.

bevor ich die logluv tiff erstellt habe, haben alle Ebenen des hdr Bilds Werte von 0 - x;

arg-das problem scheint beim speichern im logluv format zu entstehen
aus positiven hdr bilddaten (typ single, alle positiv) entstehen mit den tag parametern (siehe link oben) in der B-Ebene negative Werte.
kennst du dich zufällig mit der Tiff Class aus=?


also imaginärwerte in reshape sind kein bug, sondern ein feature Twisted Evil Idea
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.