cimg: wie kriegt man den Farbvektor eines Pixels?

Benutzeravatar
Blubb
Windoof-User
Windoof-User
Beiträge: 28
Registriert: 18. Feb 2006 15:54

cimg: wie kriegt man den Farbvektor eines Pixels?

Beitrag von Blubb » 1. Nov 2007 18:54

Hallo,

leider ist die Doku von cimg ja eher grenzwertig oder ich zu blöd... aber: wie komm ich an den Farbvektor eines Pixels in einem Bild heran? In der Doku gibt es ein paar Verdächtige, aber z.B. wird nirgendswo erklärt was das Rückgabetemplate "T" genau ist.

Ein Step by Step Howto fehlt mir auch leider. Schade, da die Library wohl sehr mächtig ist.

Kann mir jemand weiterhelfen?

Danke und Gruß
Chris

Benutzeravatar
Blubb
Windoof-User
Windoof-User
Beiträge: 28
Registriert: 18. Feb 2006 15:54

Beitrag von Blubb » 1. Nov 2007 20:06

Ok, habs selbst.

Falls noch jemand sucht, an die einzelnen RGB Werte kommt man z.B. so:

unsigned char r = image(50, 50, 0);
unsigned char g = image(50, 50, 1);
unsigned char b = image(50, 50, 2);
cout << "R G B = " << (int)r << " " << (int)g << " " << (int)b << endl;

goesele
Dozentin/Dozent
Beiträge: 57
Registriert: 26. Sep 2007 16:47

Beitrag von goesele » 1. Nov 2007 20:07

Ich empfehle die Doku (z.B. als PDF unter http://cimg.sourceforge.net/CImg_reference.pdf zu finden). Ich gebe allerdings zu, dass die recht kurz gefasst ist ...

Zur Frage: Ein Weg ist der () Operator:

T & operator() (const unsigned int x, const unsigned int y=0, const unsigned int z=0, const unsigned int v=0)
Fast access to pixel value for reading or writing.

Beispiel aus tutorial.cpp:

// Retrieve color component values at pixel (x,y)
const unsigned int
val_red = image(x,y,0),
val_green = image(x,y,1),
val_blue = image(x,y,2);

T ist damit der Typ der pro Pixel und Farbkanal gespeicherten Daten, z.B. "float" oder "unsigned int".

Hope that helps ...

Michael Goesele

Benutzeravatar
Blubb
Windoof-User
Windoof-User
Beiträge: 28
Registriert: 18. Feb 2006 15:54

Beitrag von Blubb » 1. Nov 2007 20:21

Vielen Dank, die Erläuterung zu T hatte mir noch gefehlt :)

Antworten

Zurück zu „Archiv“