U8 + palette => Bild - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Module (/Forum-LabVIEW-Module) +---- Forum: LabVIEW Vision (/Forum-LabVIEW-Vision) +---- Thema: U8 + palette => Bild (/Thread-U8-palette-Bild) |
U8 + palette => Bild - gottfried - 28.06.2011 07:05 Hallo, ich stehe an: ich habe U8 (Grauwertbilder) und klar ich darf mir die Dinger mit jeder Palette ansehen... aber ich möchte diese (bunten) Bilder als Bild haben und weiter verwenden. Mit 4 Worten: wie macht man das? Danke Gottfried RE: U8 + palette => Bild - Rene_B - 28.06.2011 07:31 Mit dem Development Toolkit gibt es die Funktion IMAQ ArrayToImage Diese funktioniert hier auch noch nach Ablauf der Testphase, sollte also bei dir auch funktionieren. MfG Rene RE: U8 + palette => Bild - gottfried - 28.06.2011 07:43 Aber ich habe kein Array ...? RE: U8 + palette => Bild - Rene_B - 28.06.2011 10:26 Dann verstehe ich deinen ersten Text nicht Was hast du denn? Nen normales Grauwertbild? Oder hast du für jeden Farbkanal ein (Grauwert-)Bild? Denn wenn du nur das Grauwertbild hast, kommst du nicht mehr auf die originalen Farben. RE: U8 + palette => Bild - gottfried - 28.06.2011 10:38 Sorry, ich habe mich missverständlich ausgedrückt: ich habe ein Graustufenbild und das kann man sich mit der Image Control mit verschiedenen Palleten anzeigen lassen. Z.B. Rainbow, Temperature etc. Ich würde gerne das farbige, angezeigte Bild weiter verarbeiten, also mit der Palette in ein "Farbbild" verwandeln. Danke Gottfried RE: U8 + palette => Bild - Novgorod - 30.06.2011 05:25 In dem Bereich ist Vision leider noch nicht wirklich "zuende-entwickelt" - kurz: geht nicht Jedenfalls nicht direkt mit Bordmitteln... Die Hardcore-Methode wäre ein selbstgeschriebener Wrapper, der einem 8bit-Wert anhand der Palette einen RGB-Wert zuordnet. Das Bild müsstest du in ein U8-Array umwandeln, darauf den Wrapper anwenden (im einfachsten Fall ist der Grauwert einfach der Index der Farbpalette, die du gerade nutzt - die vordefinierten Paletten kannst du auch direkt als RGB-Cluster-Arrays ausgeben lassen und external display -> palette), die RGB-Werte zusammentüddeln (z.B. R/G/B to U32) und dann hast du schon das Farbbild.. Etwas aufwendiger wirds, wenn du eine spezielle dynamic range benutzt (z.B. Farbe 0 und Farbe 255 entsprechen jeweils Grauwert 8 und Grauwert 96 o.ä.), dann wird nämlich intern im Vision-display umskaliert und auch darauf hat man keinen direkten Zugriff. Hierfür müsste der Wrapper angepasst werden - also kein simples Index-lookup, sondern eben ein skaliertes Index-lookup. Und nochmal komplizierter wirds bei Prozentualer dynamic range (full dynamic, 90% dynamic, given range in %), da dann auch noch das Histogramm ausgewertet werden muss... Ich musste da schon durch, d.h. ich musste die ganze Prozent-Dynamik-Geschichte komplett neu schreiben (und dann mit "given range - value" anwenden), weil die entsprechenden Vision-Funktionen sehr buggy sind und z.B. das Umschalten zischen verschiedenen Mapping-Modi selten korrekt funktioniert, insbesondere bei 16bit-Bildern... Wie dem auch sei, fürs simple Abspeichern in bunt habe ich (noch?) keinen Wrapper, sondern nehme ganz "pragmatisch" den Control-Snapshot - vorher ROI und Overlays zwischenspeichern, löschen und nach dem Snapshot wiederherstellen. Weiterhin muss man den Zoomfaktor beachten und die Bildgröße/-Auflösung/-Position etc. zum korrekten Ausschneiden des eigentlichen Bildes aus dem Control-Snapshot. Wenn man auch noch ein ROI-Foto (statt volles Display) in bunt speichern will, wirds noch etwas komplizierter (aber auch machbar )... Also wenn das was für dich ist, kann ich mal versuchen ein Beispiel zusammenzufrickeln... RE: U8 + palette => Bild - gottfried - 30.06.2011 08:40 Wie es geht habe ich Dir in http://www.labviewforum.de/Thread-IMAQ-WriteFile-ColorPalette-funktioniert-nicht zusammengeschrieben Viele Grüße aus Österreich Gottfried RE: U8 + palette => Bild - Novgorod - 30.06.2011 15:41 mir? Wie auch immer, das sieht nach der "simplen" Version eines Wrappers aus, also ein einfaches Paletten-lookup ohne Skalierung... |