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

a*-Werte eines CIELab-Bildes auslesen

 

oldschool
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 24.08.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.08.2009, 23:02     Titel: a*-Werte eines CIELab-Bildes auslesen
  Antworten mit Zitat      
Hallo!

Ich stehe ganz am Anfang meiner Matlab-Karriere und konnte mich bisher, Dank dieses Forums, an manchen Problemen entlang hangeln aber nun stehe ich vor einem Problem.

Ich moechte die Rot-Faerbung verschiedener Bilder auswerten.
Dazu werden JPEG-Bilder nach der Reihe eingelesen, zugeschnitten und der herausgeschnittene Bereich in den L*a*b*-Farbraum transformiert.
Nun sollen saemtliche a*-Werte solch eines zugeschnittenen Bildes gemittelt und ausgegeben/gespeichert werden.

Da nur die rote Faerbung interessiert, kommt es hauptsaechlich auf die positiven a*-Werte an.

Das Einlesen der Bilder (RGB), das Zuschneiden sowie die Transformation in den CIElab Farbraum funktionieren.

Das Bild ist zB. in img_lab gespeichert.
Wenn ich nun img_lab eintippe, werden reichlich Zahlenreihen angezeigt und da irgendwo muessen auch die a*-Werte fuer die einzelnen Pixel stecken : ) aber ich habe nicht herausgefunden wo und wie ich sie bekomme.

Leider habe ich mit Matlab und somit auch mit der Handhabung mehr-dimensionaler Matrizen wenig Ahnung und wuerde mich ueber eure Hilfe freuen!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Hier noch die for-Schleife, mit der die Bilder bisher bearbeitet werden:


Code:

for zaehler= 0:nDateien
    rgbPath= [originPath,'\','Test_run_1_000',num2str(zaehler),'.jpeg'];
    img_rgb=imread(rgbPath); %liest das Bild ein
    img_cut=imcrop(img_rgb,[323,254,16,14]); %schneidet Bereich aus
    cform=makecform('srgb2lab'); %bereitet Farbtransformation vor
    img_lab=applycform(img_cut,cform); %schreibt L*a*b* Bild in img_lab
    labPath=strcat(neuerOrdner,'Test_lab_000',num2str(zaehler),'.tiff');
    imwrite(img_lab,labPath,'tiff','colorspace','cielab'); %speichert img_lab
end
 
Private Nachricht senden Benutzer-Profile anzeigen


LittleX
Forum-Guru

Forum-Guru


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

um nur die A-Werte zu erhalten kannst Du folgendes schreiben:
Code:

a = img_lab(:,:,2);
 


Das LAB Bild ist ein 3D array und die a Werte befinden sich in der zweiten Ebene.

Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
oldschool
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 24.08.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2009, 11:37     Titel:
  Antworten mit Zitat      
hey


danke fuer die Antwort.. klappt alles soweit : )


Bis zum naechsten Problem : D
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.