2016-10-23 1 views
1

Ich möchte die Pixelwerte eines Graustufenbildes auslesen. Mit RGB-Bildern habe ich keine Probleme. Der Code ist nur einfach:Laden mit einfacher OpenGL-Bildbibliothek (SOIL) ein Bild (Farbraum: GRAU)

int width, height; 
unsigned char* image = SOIL_load_image(filepath.c_str(), &width, &height, 0, SOIL_LOAD_RGB); 
std::cout << "size of image : " << size << " width: " << width << " height: " << height << std::endl; 

Jetzt möchte ich ein Bild laden (png) mit GRAY-Farbraum, dachte ich, ich könnte einfach SOIL_LOAD_RGB SOIL_LOAD_L ändern, aber das funktioniert nicht aus.

auf der Konsole Meine Ausgabe ist: Größe des Bildes: -237407992 Breite: 10 Höhe: -1312230988

Und es ist nicht konstant. Nur die Breite bleibt 10, und die Höhe ändert sich jedes Mal, wenn ich das Programm starte.

Gibt es etwas, das ich ändern oder bei der Arbeit mit Graustufenbildern berücksichtigen muss?

+1

Sprache ist C++. Ich habe ein Tag hinzugefügt – Dominick

Antwort

0

Sie sollen den dritten Parameter von '0' bis '& Kanal', ändern wie diese

unsigned char *image = SOIL_load_image(filepath.c_str(), &width, &height, &channel, SOIL_LOAD_L);