Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
ich stoße mal wieder an meine Grenzen. Ich mache mit meiner Kamera ein Bild. Auf diesem Bild ist eigentlich mehr Drauf, als ich sehen will, also viel Datenmüll, den ich gar nicht abspeichern möchte. Also schneide ich einen Teil meines Bildes ab und speicher nur noch den Rest. Mein Problem ist nun, dass mein Bild nicht mehr in der Orignal-RGB-Farbpalette gespeichert wird, sondern in Blau.
Wenn ich das noch richtig in Erinnerung habe, ist ein Bild quasi eine 3D-Matrix, wobei in der 3. Dimension drei Matrizen vorliegen, eine für den Blauwert, eine für den Grünwert und eine für den Rotwert.
Es scheint mir, dass durch das Reshapen diese dritte Dimension verloren geht und ich nur noch die blaue Matrix habe. Gibt es eine Möglichkeit die anderen zurückzubekommen, ohne eigenhändig Pixel für Pixel die Originalfarbe zuzuordnen? Oder noch besser: Kann ich gar verhindern, dass diese Informationen verloren gehen und das Bild trotzdem zurechtschneiden?
Im Anhang befindet sich ein Bild meines VI's (bzw. nur das was relevant ist).
RE: Bild zerschneiden und in Originalfarbe speichern
Hallo bienee,
-Welches Format haben denn deine Bilddaten vor den Reshape? Aufeinanderfolgende RGB-Bytes? Oder vielleicht I32-Werte pro Pixel?
-Beim PNG-Speichern kann man Farbtiefe und Palette vorgeben...
RE: Bild zerschneiden und in Originalfarbe speichern
(26.08.2011 09:09 )GerdW schrieb: Hallo bienee,
-Welches Format haben denn deine Bilddaten vor den Reshape? Aufeinanderfolgende RGB-Bytes? Oder vielleicht I32-Werte pro Pixel?
Also IMAQ Get Image Data.vi sagt: Image Data is a copy of the raw image data for the current image. The data is returned as a 1D array where each byte represents a byte of data.
Das 'Datenkabel' zur reshape-Funktion sagt: image data (unsigned byte(8-bit integer(0 to 255)))
Ich hoffe das ist hilfreich, ansonsten habe ich keine Ahnung woher ich diese Information bekomme.
RE: Bild zerschneiden und in Originalfarbe speichern
Hallo bienee,
1) 329460 <> 492*658, d.h. du schneidest mit dem Reshape irgendwelche Informationen weg...
2) du bekommst ein reines Byte-Array vom IMAQ, entweder nur Graustufen/Helligkeitswerte oder Palettenbasiert (wobei du die Palette wegschneidest, s. 1)
RE: Bild zerschneiden und in Originalfarbe speichern
(26.08.2011 09:52 )GerdW schrieb: Hallo bienee,
1) 329460 <> 492*658, d.h. du schneidest mit dem Reshape irgendwelche Informationen weg...
2) du bekommst ein reines Byte-Array vom IMAQ, entweder nur Graustufen/Helligkeitswerte oder Palettenbasiert (wobei du die Palette wegschneidest, s. 1)
Ok...sowas ähnliches habe ich mir schon gedacht. Die Frage ist jetzt natürlich wie ich rauskriege in welche Größe ich den Array reshapen muss, um ein farbiges Bild zu erhalten. Und vor allem wo sind in diese Informationen zu Farbpalette abgelegt. Damit ich hinterher, wenn ich den 2D-Array zerschneide, nicht anstatt das Bild zu zerstückeln, einfach nur wieder die Farbinformationen wegschneide.
RE: Bild zerschneiden und in Originalfarbe speichern
(26.08.2011 12:02 )GerdW schrieb: Hallo bienee,
du könntest die IMAQ-Doku lesen.
Ich habe das Modul nicht installiert, kann dir hier also nicht weiterhelfen...
ok...aber auf jeden Fall schonmal Danke!
Wie man das Problem genau löst habe ich nicht herausgefunden. Allerdings gibt es in der Funktion 'Imaq1394 Grab Setup' ebenfalls eine Möglichkeit eine Region of Interest einzustellen. Durch die wird von vornherein nur das Objekt meines Interesses zur weiteren Verarbeitung übergeben. Für mich reicht das in diesem Fall. Es ist allerdings keine Lösung, wenn jmd die Raw-Daten benutzen will um das Bild zu bearbeiten und es dann in Farbe speichern möchte.