Hallo LabVIEW-Experten,
ich schreibe gerade mit LabVIEW ein Programm, in dem das Live-Bild einer Kamera eingelesen wird (IMAQ Vision).
Leider wird der Bildtyp (Datentyp: IMAQ Image, Bildtyp: Grayscale (U8)) automatisch in „Grayscale (I16)“ umgewandelt, sobald der Datenstrang in eine While-Schleife gezogen wird (siehe ForumBeispielLabVIEW.vi /ForumVIBeispiel.bmp ). Ich brauche aber den Bildtyp „Grayscale (U8)“.
Woran könnte das liegen – wieso konvertiert LabVIEW mein Bild automatisch? Anscheinend nur wegen der While-Schleife (habe das ausgetestet)? Oder besser noch wie mache ich die Konvertierung wieder rückgängig (von Grayscale (I16) in Grayscale (U8))?
Vielen Dank und Grüße
(LabVIEW Version 8.6)
Bitte
LVF-Regeln beachten. BMPs als Upload sind nicht erlaubt, auch nicht solche, die du per Dateiendung als PNG tarnst.
Dein 2 MB BMP ist als echtes PNG gerade mal 40 kB groß!
Gruß, Jens
war keine Absicht - Entschuldigung
Hallo,
man kann den Bildtyp anscheinend mit "IMAQ Cast Image VI" konvertieren, allerdings fehlt mir da die Lizenz und ich weiss auch nicht, ob ich sie bekomme (Vision Utilities generell). Gibt es vielleicht Alternativen? Kann man sowas ohne Lizenz selbst "zusammenbasteln"?
Mit dem Block "IMAQ Image Bit Depth" habe ich es auch versucht, allerdings gab es auch hier Probleme, es kommt die Fehlermeldung "Falscher Bildtyp" (siehe ForumVIBeispiel2.png). Was mache ich falsch? Oder sollte ich es doch ganz anders machen?
Grüße
Hallo,
das mit der Lizenz war ein Irrtum. In der Fehlermeldung steht zwar als Hinweis, dass es an den Lizenzen liegen könnte, aber das tut es doch nicht. Ich habe alle Lizenzen...
Es kommt immer eine Fehlermeldung, wenn ich den Block "IMAQ Cast Image VI" verwende (siehe Forum3VI.PNG): "Das SubVI ist nicht ausführbar. Es müssen alle Fehler im SubVI beseitigt werden, bevor das VI ausgeführt werden kann."
Weiß jemand, was ich falsch mache?
Grüße
Also eine Schlaufe an sich macht NIE etwas mit den Daten von sich aus. Was aber hier wohl passiert ist dass die IMAQ Acquisition VIs den Bildtyp automatitisch anpassen, da die Defaulttiefe der Image Acquisition-Karte wohl auf 16 Bit steht. Da IMAQ Images im Gegensatz zu anderen Datenelementen in LabVIEW Drähten, Referenzen sind, hat diese Änderung beim 2ten Durchlauf der Loop zur Folge das IMAQ Type nun ein 16 Bit Image sieht.
Die Lösung wäre also, um die IMAQ Karte vor der Loop so zu konfigurieren, dass sie halt im 8 Bit Modus arbeitete, und dann wird das Bild auch nicht mehr nach 16Bit gecasted.
Hallo,
der Block "IMAQ Cast Image VI" funktioniert jetzt. Es hatte tatsächlich was mit den Lizenzen zu tun, da wurde irgendwas nicht ordnungsgemäß aktiviert. Es geht jetzt also wieder......
Danke auf jeden fall
Grüße
Wie ich in meiner ersten Message angedeutet habe, solltest Du die Image Acquisition so einzustellen versuchen, dass sie nicht bei jeder Acquisition das Image nach 16 Bit casted um het dann manuell wieder nach 8 bit zurückzucasten.
Ach ja - Ich sollte vielleicht noch dazu sagen, dass meine Kamera 10 bit liefert...
Wie stelle ich die Bittiefe der Image Acquisition-Karte ein? Ich habe die Hilfe-Artikel der ganzen Blöcke (IMAQ Grab Acquire usw.) durchgelesen, aber ich finde da nichts.. In dem ganz normalen Menü habe ich auch nichts gefunden.... oder mache ich das zum beispiel über den block "set bit depth"?
Tja, ich sehe dass Du traditional IMAQ benützt. Da scheint es keine programmatische Möglichkeit zu geben um die Bittiefe einzustellen. IMAQdx lässt das schon zu. Du kannst aber wahrscheinlich in MAX diese Einstellung vornehmen. Leider kann ich das im Moment nicht testen da ich kein IMAQ Device hier habe.