Brauche mehr als nur 256 Grauwerte...

Alles rund um die Programmierung mit Qt
Antworten
Davidave
Beiträge: 33
Registriert: 26. Februar 2005 17:26

Brauche mehr als nur 256 Grauwerte...

Beitrag von Davidave »

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 (Ist 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ß
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

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
lepsai
Beiträge: 573
Registriert: 14. September 2004 21:33
Wohnort: Berlin
Kontaktdaten:

Beitrag von lepsai »

Wozu brauchste mehr als 255 GW? Was soll dargestellt werden?
Davidave
Beiträge: 33
Registriert: 26. Februar 2005 17:26

Beitrag von Davidave »

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!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

egal mit welchem Programm du versuchst die 'grauwerte' darzustellen - dein Monitor und deine GraKa macht nicht mehr als 256 mit...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Davidave
Beiträge: 33
Registriert: 26. Februar 2005 17:26

Beitrag von Davidave »

Da hast du vollkommen recht.
Es geht mir auch nicht um die Darstellung, sondern um die weitere Verrechnung der Grauwerte, welche ich in Vektoren speichern will...
Falls ich mich da etwas umständlich ausgedrückt habe tut es mir Leid.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Dann würde ich es aber nicht als Bild ansehen sondern schlicht als simple Daten. :)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
lepsai
Beiträge: 573
Registriert: 14. September 2004 21:33
Wohnort: Berlin
Kontaktdaten:

Beitrag von lepsai »

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...
Antworten