Hallo, liebe Gemeinde.
Ich bringe mich mal wieder mit einer Frage ein.
Ich lade mir ein QImage aus einer Datei in dieser simplem Art:
Image.load(Path);
Klappt auch alles, kein Problem.
Jetzt muss ich auf bestimmte Teile des Bildes st ein reines Graubild) zugreifen und dessen Pixelwerte benutzen (zB in einem Vektor speichern), so wie hier:
Color col = Image.pixel(_x, _y);
int grayValue = (col.red()*11 + col.green()*16 + col.blue()*5)/32;
PixelValue.push_back(grayValue);
Die Formel zur Berechnung des grayValue steht im QT Manual drin und errechnet mir auch die Werte von 0-255.
Soviel zur Vorgeschichte...
Wenn ich nun die Pixelwerte feiner differenzieren will, gibt es dann eine Möglichkeit mit QT dies zu tun? Also mehr als 256 Grauwerte?
Ein Bekannter sagte mir, mit QT ist das nicht drin.
Vielen Dank für eure Zeit,
Gruß
Brauche mehr als nur 256 Grauwerte...
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Da Farbwerte (auch in TrueColor) nur im Bereich von 0 bis 255 definiert sind, gibt es (auch ohne Qt) keine generische Lösung für dein Problem. Zumindest kannst Du das dann nirgends anzeigen. Und da Du die Farbwerte aus einem TrueColor - Pixel extrahieren willst, macht mehr als 256 Grauwerte keinen Sinn - du hast damit keinen Mehrwert an Informationen.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Es handelt sich um Mikroskopieaufnahmen.
Diese können weitaus höhere Pixelwerte haben, als "nur" im Bereich von
0-255.
Das Problem ist glaube ich, dass wenn ich diese Bilder in ein QImage lade, QT die Grauwerte auf Werte im besagten Bereich abbildet.
Mir wurde vorgeschlagen die Pixelwerte des Bildes mit itk auszulesen und dann weiterzuarbeiten.
Nun versuche ich itk bei mir (Suse 9.2) zu installieren, wobei ich als rel. Suse-Anfänger noch echte Probleme habe.
Grüße!
Diese können weitaus höhere Pixelwerte haben, als "nur" im Bereich von
0-255.
Das Problem ist glaube ich, dass wenn ich diese Bilder in ein QImage lade, QT die Grauwerte auf Werte im besagten Bereich abbildet.
Mir wurde vorgeschlagen die Pixelwerte des Bildes mit itk auszulesen und dann weiterzuarbeiten.
Nun versuche ich itk bei mir (Suse 9.2) zu installieren, wobei ich als rel. Suse-Anfänger noch echte Probleme habe.
Grüße!
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Wenn du mehr als 8 Bit pro Kanal brauchst (bei dir werden es wahrscheinlich 10-12 Bit sein), must du eine eigene Bildklasse implementieren. auf Qt Seite kannst du dann deine Daten in ein QImage konvertieren und anzeigen. Dabei lassen sich gleichzeitig verschiedene Visualisierungen vernünftig umsetzen (Farbraumkonvertierungen, LUT's usw. ). Du bist also insgesamt flexibler... Das einzig Blöde an der Sache ist nur, dass du keine saubere Data/View Trennung mehr hast, also nicht mehr QImage/QPixmap sondern MyImage->Konverter/QImage/QPixmap,
aber anders geht es leider nicht...
aber anders geht es leider nicht...