|
|
Lab-Bild aus Matlab speichern |
|
gerste |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.08.2009, 15:32
Titel: Lab-Bild aus Matlab speichern
|
|
Hallo zusammen.
Vorweg: Ich bin blutiger Matlabanfänger. Ein paar Sachen habe ich schon hinbekommen aber jetzt hakts irgendwie.
Folgendes:
Ich möchte gerne ein Lab-Bild einlesen, die Koordinaten nach LCh transformieren ein bisschen am Bunttonwinkel (h) drehen, zurück nach Lab und das Bild wieder abspeichern.
Das klappt im Grunde auch schon ganz gut, nur das Abspeichern haut nicht so richtig hin.
Im bekomme mit imwrite nur RGB-Daten raus (was natürlich mit meinen Lab-Koordinaten total scheiße aussieht).
Am Ende soll also einfach ein Lab-Tif mit 300 dpi stehen.
Ich vermute/hoffe mal, dass das für den geneigten Experten kein allzu großes Problem darstellt für mich derzeit allerdings schon (bzw. noch).
Dank und Gruß
|
|
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 03.08.2009, 15:38
Titel:
|
|
|
|
LittleX |
Forum-Guru
|
|
Beiträge: 494
|
|
|
|
Anmeldedatum: 14.05.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.08.2009, 15:54
Titel:
|
|
Hallo,
mit welchen Parametern rufst Du denn imwrite auf?
Um den L*a*b* Farbraum zu verwenden, muss der entsprechende Parameter 'ColorSpace' auf 'icclab' bzw. 'cielab' gesetzt sein.
Viele Grüße,
LittleX
|
|
|
Hubertus |
Forum-Meister
|
|
Beiträge: 1.034
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.08.2009, 16:07
Titel:
|
|
Hallo LittleX
ich möchte diese Fragestellung um einen Punkt erweitern. Wie rechne ich ein RGB-Bild in ein L*a*b-Bild um? In Help finde ich nur die Umrechnung nach cbcr oder hsv oder habe ich nur ein Brett vor dem Kopf (soll vorkommen)?
Gruß Hubertus
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 03.08.2009, 16:12
Titel:
|
|
|
|
Hubertus |
Forum-Meister
|
|
Beiträge: 1.034
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.08.2009, 16:26
Titel:
|
|
Ich möchte noch einmal kutz nachfragen. Ist "rgb2ycbcr" gleichzusetzen mit L*a*b oder gibt es dafür noch einen anderen Befehl?
Gruß Hubertus
|
|
|
LittleX |
Forum-Guru
|
|
Beiträge: 494
|
|
|
|
Anmeldedatum: 14.05.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.08.2009, 16:49
Titel:
|
|
Zur Umwandlung gibt es die Befehle makecform und applycform.
|
|
|
gerste |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.08.2009, 16:53
Titel:
|
|
Vielen Dank für die vielen schnellen Antworten.
@ Andreas: Genau der (letzte) isses.
@ Hubertus: Ich weiß nicht genau wie es in Matlab läuft aber von Lab nach RGB kommst du rein mathematisch nur über XYZ (Normvalenzsystem), klingt bescheuert aber so isses. Gute Seite zu dem Thema: http://www.brucelindbloom.com/ und denn oben auf Math klicken ... oder eben Photoshop nehmen
@LittleX: Ich weiß nicht mehr genau, wie ich es gemacht habe. Habe das vorletzte Woche mal ausprobiert, hat nicht geklappt, dann hieß es: brauchen wir eh nicht mehr, machen wir anders und nu brauchen wir es doch wieder; allerdings habe ich gerade meinen Laptop nicht dabei.
Aber vielleicht ist das, was du geschrieben hast schon die Lösung, das hatte ich in meinem Befehl jedenfalls nicht stehen. Ich werde das mal ausprobieren und mich dann wieder melden.
@ alle: Vielen Dank Leute.
|
|
|
Hubertus |
Forum-Meister
|
|
Beiträge: 1.034
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.08.2009, 18:37
Titel:
|
|
Hallo gerste,
mein Weg war bisher auch immer über Photoshop, möchte aber eine Funktion schreiben, die alles in einem Rutsch erledigt. Mich würde nicht nur interessieren, ob es einen Unterschied zwischen "rgb2ycbcr" und L*a*b* gibt und dann, ob es nicht ein M-File zur Umrechnung gibt. Vielleicht hat ja eine "gute Seele" hier im Forum darauf eine Anwort.
Einen Dank schon mal om voraus
Hubertus
|
|
|
LittleX |
Forum-Guru
|
|
Beiträge: 494
|
|
|
|
Anmeldedatum: 14.05.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.08.2009, 19:10
Titel:
|
|
YCbCr und L*a*b sind nicht das gleiche. Die Definitionen und Umrechungsformeln finden sich auf wikipedia.
In MATLAB werden für die Umrechung von RGB -> L*a*b* zwei Funktionen verwendet.
makecform zum erstellen der Transformationmatrix, applycform um die Transformation durchzuführen.
Beispiel aus der MATLAB doku:
|
|
|
gerste |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.08.2009, 19:33
Titel:
|
|
Ich hab mich mit YCbCr noch wirklich auseinander gesetzt (ich komme aus der Druckindustrie) aber wenn ich mich recht entsinne, ist das doch ein theoretisches Modell ohne feste Primärvalenzen (kann mich aber auch täuschen). Hat mit Lab eigentlich nichts zu tun, außer dass auch hier Helligkeit und Farbe getrennt betrachtet werden ... darauf lässt jedenfalls der Name schließen.
Vermutlich erzähl ich hier niemandem was Neues aber ich find ja die Colour Engineering Toolbox von Phil Green recht nett.
Gerade jetzt am Anfang meiner Matlabkarriere.
http://www.digitalcolour.org/toolbox.htm
|
|
|
gerste |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.08.2009, 19:59
Titel:
|
|
Von welchem RGB reden wir hier eigentlich? Wenn du von sRGB aus kommst, kannst du die von LittleX genannte Funktion oder eine aus der Engineering Toolbox verwenden.
Gehst du aber von AdobeRGB oder ECIRGB oder sonst was aus, musst du quasi ne manuelle Matrixmultiplikation durchführen.
Die entsprechende Mathematik inkl. aller benötigten Werte findest du auf der oben schon erwähnten Seite von Bruce Lindbloom.
http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html
|
|
|
LittleX |
Forum-Guru
|
|
Beiträge: 494
|
|
|
|
Anmeldedatum: 14.05.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.08.2009, 20:24
Titel:
|
|
Auch wenn man AdobeRGB verwenden will ist das kein Problem.
Die Funktion makecform kann durch den Parameter -icc auch zur Konvertierung von verschiedenen icc Profilen verwendet werden (also z.B. von AdobeRGB zu sRGB).
Siehe dazu auch die Hilfe von iccread.
|
|
|
Hubertus |
Forum-Meister
|
|
Beiträge: 1.034
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.08.2009, 03:45
Titel:
|
|
Moin, moin
etwas verschlafen danke ich erstmal allen für die Antworten. Jetzt ist alles viel klarer!
Ich wünsche allen einen schönen Tag
Viele Grüße
Hubertus
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 04.08.2009, 07:53
Titel:
|
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|