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

Lab to RGB konvertieren?

 

Hilbert86
Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 08.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.09.2009, 18:44     Titel: Lab to RGB konvertieren?
  Antworten mit Zitat      
Hallo Leute

bin ganz am Anfang der Bildverarbeitung und werde wohl die nächsten Wochen noch einige Fragen stellen da ich gerade ein Projekt am start habe Smile!

Ich habe mal versucht Bilder von RGB in den LAB Farbraum zu konvertieren.

Code:
NameBild = input('Bildname: ', 's');
picturecolor = imread(NameBild);

cform=makecform('srgb2lab');
img_lab=applycform(picturecolor,cform);

imshow(img_lab);


wenn das Bild dann konvertiert wird sieht es fast wie ein negative Bild aus, ist das Normal? Um ein Beispiel zu nennen Rot wird zu Grau!

Grüße
Hilbert
_________________

MMAAAAAATTTTTLLAAAAABBBB
Private Nachricht senden Benutzer-Profile anzeigen


Hilbert86
Themenstarter

Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 08.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2009, 17:20     Titel:
  Antworten mit Zitat      
Was ich halt nicht verstehe ist: ich habe die a,b,L werte gespeichert
Code:
L = img_lab(:,:,1);
a = img_lab(:,:,2);
b = img_lab(:,:,3);


aber die können nicht richtig sein! Als beispiel gibt es werte wie 255
aber der LAB raum hat doch nur Werte im L raum 0bis 100 und a -150 bis 100 und b 100 bis -150

sind vlt die Werte immer noch in RGB? Stimmt die Umwandlung den nicht? oder habe ich wo ein verständnis Problem?
_________________

MMAAAAAATTTTTLLAAAAABBBB
Private Nachricht senden Benutzer-Profile anzeigen
 
Hilbert86
Themenstarter

Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 08.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.09.2009, 15:13     Titel:
  Antworten mit Zitat      
Hallo Leute

muss ich vlt einen Zwischenschritt machen in dem ich zuerst RGB in XYZ und dann erst LAB wandle?
_________________

MMAAAAAATTTTTLLAAAAABBBB
Private Nachricht senden Benutzer-Profile anzeigen
 
Hilbert86
Themenstarter

Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 08.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2009, 13:56     Titel:
  Antworten mit Zitat      
Hi Leute

bitte schreibt doch nicht so viele Antworten Smile)))

habe es nun hinbekommen in dem ich RGB zuerst in XYZ und dannach in LAB umgewandelt habe Smile))


Meine nächstes Problem wäre jetzt ich möchte die LAB werte in ein LAB Kordinatensystem übertragen, im endefekt soll es darauf hinauslaufen das ich im Bild Rot Weiß übergänge ausfindig machen möchte und da wo die meisten kontraste sind auf diesen bereich dann konzentrieren!



Gruß
Hilbert
_________________

MMAAAAAATTTTTLLAAAAABBBB
Private Nachricht senden Benutzer-Profile anzeigen
 
Hilbert86
Themenstarter

Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 08.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.09.2009, 09:50     Titel:
  Antworten mit Zitat      
Hallo Leute

ich führe hier ja ein komisches selbst gespräch vlt könntet ihr mir ja mal einen Tip geben!

Wenn ich ein RGB Bild in LAB umwandle und es dann mit imshow anzeige zeigt es mir das Bild in RGB an, das heisst es nimmt die konvertierten Werte aus der LAB Matrix mit zum Beispiel negativen Werten, deswegen sieht das Bild auch sehr komisch aus! Gibt es denn einen Befehl in Matlab zb imshowlab? irgendwie sowas? Das mir das Bild normal anzeigt und babei die LAB Werte nimmt?

Gruß
auf lebenszeichen wartender Hilbert
_________________

MMAAAAAATTTTTLLAAAAABBBB
Private Nachricht senden Benutzer-Profile anzeigen
 
LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.10.2009, 12:05     Titel:
  Antworten mit Zitat      
Hallo,

imshow interpretiert das Bild wie ein RGB Bild. Wenn Du ein LAB Bild als "normales Bild" anzeigen willst, musst Du es vorher nach RGB zurückkonvertieren. Wenn Du das oft brauchst kannst Du ja selber eine Funktion imshowlab schreiben Smile
Für Analyse-Zwecke würde ich die einzelnen Ebenen separat anzeigen lassen.

Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
Hilbert86
Themenstarter

Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 08.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.10.2009, 14:46     Titel:
  Antworten mit Zitat      
Danke LittleX für die Info Smile

Jetzt hätt ich da noch eine Frage. Wenn ich ein RGB Bild in LAB umwandle in dem ich

Code:
cform=makecform('srgb2lab'); %bereitet Farbtransformation vor
img_lab=applycform(picturecolor,cform);


verwende wieso stimmen die umgewandelten Werte dann nicht? Laut Wikipedia sollten zum beispiel die L Werte maximal 100 sein aber bei mir sind sie maximal 255! Das versteh ich nicht! Gibt es dazu eine Quelle die dieses Problem beschriebt?


http://de.wikipedia.org/wiki/Lab-Farbraum#XYZ_und_RGB
_________________

MMAAAAAATTTTTLLAAAAABBBB
Private Nachricht senden Benutzer-Profile anzeigen
 
LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.10.2009, 15:12     Titel:
  Antworten mit Zitat      
Hallo,

das hängt von Deinem Datentyp ab:
für double sind die Werte zwischen 0 und 100, für uint8 zwischen 0 und 255.
Mit dem Befehl lab2double kannst Du das entsprechend umwandeln.
In der Hilfe zu dem Befehl findest Du auch Infos über die Konventionen die MATLAB verwendet.

Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 05.10.2009, 15:16     Titel:
  Antworten mit Zitat      
Hallo,

weil die Werte in uint8 vorliegen, (positive natürliche zahlen)

Willst in Zahlenbereich wie bei Wiki umrechnen dann benutze
Code:

lab2double
 


PS: In der Hilfe von lab2double kannst du auch die Umrechnungstabelle anschauen
Private Nachricht senden Benutzer-Profile anzeigen
 
Hilbert86
Themenstarter

Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 08.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.10.2009, 16:17     Titel:
  Antworten mit Zitat      
Hey Super danke an euch beide!
_________________

MMAAAAAATTTTTLLAAAAABBBB
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.