LabVIEWForum.de
The Imaging Source - Frameraten Problem - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: The Imaging Source - Frameraten Problem (/Thread-The-Imaging-Source-Frameraten-Problem)



The Imaging Source - Frameraten Problem - Pitt - 07.02.2012 12:56

Hi Leute,

ich bin nicht sicher ob das hier das Richtige Forum ist, wenn nicht, bitte Verschieben.

Im Rahmen meiner Studienarbeit, detektiere ich eine Laserauslenkung mit einer CCD Camera. Die Bilddaten der Kamera kann ich aber nur als Variant abrufen, bis dahin ist alles super (eine nicht gedrosselte whileschleife zeigt ca. 500 FPS) sobald ich aber den Variant Datentyp in Int 8bit umwandeln lasse, fällt die Framrate auf ca. 5.5 FPS ab, die Kamera schafft aber immerhin 15.


Hat einer von euch eine idee wie ich die Umwandlung beschleunigen könnte? Meint ihr es würde was bringen, wenn ich das Variantarry in 4 Unterarrays aufspalte und dann paralell in 8bit int umwandel und anschließend wieder zusammenführe?

PS: Diese Cam


RE: The Imaging Source - Frameraten Problem - schrotti - 07.02.2012 20:05

Ich kann mir den Perfomanceeinbruch nicht erklären. Kannst du das VI hochladen mit einem Beispielbild in Variant hochladen?


RE: The Imaging Source - Frameraten Problem - Pitt - 08.02.2012 08:47

Hi,

das subvi um die Bilddaten abzuhohlen ist eigentlich recht simpel, es liegt im Main.vi innerhalb der while Schleife, da die Kamera ja nur einmal korrekt geladen werden muss... Die Klasse IICimagingControl
ist die oberste Klasse.

In einer früheren Version, hatte ich des mit der Unterklasse IImageBuffer und der Methode GetImageData versucht, aber trotz des Aufruf ReleaseImageData lief der Speicher voll. Nach ein Paar min hat Labview bei 2GB
abgeriegelt...
Dieses Problem habe ich mit MemoryGetImageData nicht. Die Frameraten waren aber in beiden Fällen gleich.

Das Problem ist die Umwandlung "Variant to Data" aber ohne diese kann ich mit den Bilddaten nicht rechnen.

Schon mal danke


RE: The Imaging Source - Frameraten Problem - Pitt - 08.02.2012 13:12

So, ich habe nochmal ein wenig rum getrickst, und jetzt habe ich die max Framerate. Es gab die Methode das aktuelle bild als bmp zu speichern. das mache ich jetzt, und anschließend lese ich es wieder von der platte ein.
das ist zwar nicht im sinne des Erfinders, aber Funktioniert. Sollte dennoch jemand wissen wie man es "richtig" machen kann ohne die daten erst auf die platte schreiben zu müssen, dann ist die Lösung gern gesehen.


RE: The Imaging Source - Frameraten Problem - schrotti - 08.02.2012 20:36

Dein Array enthält 1280 x 960 Elemente. Wenn ich solch ein Array anlege, in Variant konvertiere schaffe ich mehrere 1000 Konvertierung pro Sekunde nach U8 Array. Mich interessiert vor allem, was MemoryGetImageData exakt ausgibt. Schließe hierfür einfach eine Variantanzeige an, las das VI laufen und setze den Inhalt der anzeige als Standard. Anschließend lädst du das Anzeigeelement hoch.