Schwachkopp
Lt. Junior Grade
- Registriert
- Jan. 2016
- Beiträge
- 314
Hallo,
bin auf ein Problem gestoßen, bei dem ich nicht weiterkomme. Ein 16-Bit Graustufenbild (Link zum Testbild) soll ausgelesen werden, wobei jedem Grauton eine Zahl zwischen 0 und 1 zugewiesen werden soll. Die Frage ist nun warum ich nur verschiedene 256 Grautöne erhalte obwohl die Datei eigentlich 16-Bit also ~65k Farbstufen hat.
Kann sich bitte jemand den untenstehenden Code und das oben verlinkte selbsterzeuge Testbild anschauen?
bin auf ein Problem gestoßen, bei dem ich nicht weiterkomme. Ein 16-Bit Graustufenbild (Link zum Testbild) soll ausgelesen werden, wobei jedem Grauton eine Zahl zwischen 0 und 1 zugewiesen werden soll. Die Frage ist nun warum ich nur verschiedene 256 Grautöne erhalte obwohl die Datei eigentlich 16-Bit also ~65k Farbstufen hat.
Kann sich bitte jemand den untenstehenden Code und das oben verlinkte selbsterzeuge Testbild anschauen?
C++:
#include <QDebug>
#include <QImage>
QPixmap pix("test.png");
QImage img = pix.toImage();
img = img.convertToFormat(QImage::Format_Grayscale16);
for (int x = 0 ; x < 4096; x++) {
// h[y] enthält Werte zwischen 0 und 2^16 - 1
const uint16 *h = reinterpret_cast<const uint16*>(img.scanLine(x));
for (int y = 0; y < 4096; y++) {
qDebug() << x << y << h[y] / pow(2, 16);
}
}
Zuletzt bearbeitet:
(Link zu Direktdownloadlink geändert)