Seite 1 von 1

Brauche mehr als nur 256 Grauwerte...

Verfasst: 9. Mai 2005 17:04
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ß

Verfasst: 9. Mai 2005 18:01
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.

Verfasst: 13. Mai 2005 15:19
von lepsai
Wozu brauchste mehr als 255 GW? Was soll dargestellt werden?

Verfasst: 13. Mai 2005 15:31
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!

Verfasst: 13. Mai 2005 20:55
von Christian81
egal mit welchem Programm du versuchst die 'grauwerte' darzustellen - dein Monitor und deine GraKa macht nicht mehr als 256 mit...

Verfasst: 13. Mai 2005 21:11
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.

Verfasst: 13. Mai 2005 21:17
von Christian81
Dann würde ich es aber nicht als Bild ansehen sondern schlicht als simple Daten. :)

Verfasst: 13. Mai 2005 21:31
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...