Bild erzeugen - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Module (/Forum-LabVIEW-Module) +---- Forum: LabVIEW Vision (/Forum-LabVIEW-Vision) +---- Thema: Bild erzeugen (/Thread-Bild-erzeugen) |
Bild erzeugen - cbahn - 27.09.2016 08:01 Hallo, Ich habe bisher noch nicht viel mit Bildbearbeitung zu tun gehabt. so ich habe folgendes Problem. Über UDP bekomme ich Datenpakete die zusammen gesetzt ein Bild ergeben. Also quasi einen Stream. Mit einem separaten Programm sehe ich so ein richtiges Videobild wie mit einer normalen Kamera halt dargestellt. Ich möchte aber auf das separate Programm verzichten da die Bilder zur Kontrolle noch weiter in LabView gebraucht werden. Leider kann ich den ankommenden Stream nicht in MAX als Videokamera einbinden. Das wäre dann ja einfach. Wie kann ich die Einzel Bild Sequenz am besten zu einem Videobild zusammensetzen. Ich bekomme 15 Teilbilder die durchnummeriert sind. Mit den kann ich dann ein Bild zusammensetzen. Aber das dauert zu lange um ein bewegtes Bild zu erzeugen. Die Daten lese ich im ASCII Format aus, forme sie so um das ich dann zum Schluss mit IMAQ ArrayToImage VI in ein Bild erzeuge. Gäbe es da bessere verfahren? Die schneller sind. Ich versuche das Sub.vi gerade so zu gestalten das ich es zur Verfügung stellen kann, bei Bedarf. Aber ich muss sehen wie ich dazu Zeit habe. Danke schon mal im Vorfeld. cbahn RE: Bild erzeugen - GerdW - 27.09.2016 08:12 Hallo cbahn, Zitat:Ich bekomme 15 Teilbilder die durchnummeriert sind. Mit den kann ich dann ein Bild zusammensetzen. Aber das dauert zu lange um ein bewegtes Bild zu erzeugen.Wenn du die Bildteile so langsam bekommst, wirst du eben kein Live-Video anzeigen können… Oder dauert dein "Zusammensetzen" so lange? Zitat:Die Daten lese ich im ASCII Format aus,Was bedeutet das? Was ist ein "ASCII-Format"? Bekommst du etwas Daten in einem dem PGM-Bildformat (mit MagicNumber P1-P3) angelehnten Format? Diese hat halt viel Overhead und benötigt mehr Übertragunsgzeit… Sind die Daten eher binär kodiert (auch wieder angelehnt an PGM, MagicNumber P4…)? Das geht dann schon etwas schneller, benötigt aber immer noch viel Bandbreite… Sind die Daten irgendwie JPG-kodiert? Das ist eigentlich bei "Internetkameras" üblich und spart Bandbreite für die Übertragung von "Livebildern"… RE: Bild erzeugen - cbahn - 27.09.2016 08:50 Hi, ich glaube das zusammensetzen dauert so lange. Im externen Programm wird was von über 90Mbit/s angezeigt. Dort geht das ja auch mit dem Livebild. Die Daten sind so Header information Bild Pos 4443 5344 0200 5824 0000 0FC3 0009 0010 und dann kommen noch so 22564 Zeichen die gewandelt werden. Und das 15 mal für ein Bild. Bild kennung ist von 0001 bis 000F. Das Daten format ist so wenn ich es im Normal String habe, sehe ich nur ASCII zeichen. Mit ansicht auf HEX gestellt lesbare hex Zeichen. Das genaue Bild format läst sich aus den mir vorliegenden infos nicht bestimmen. Es gibt hirzu auch kein richtiges Datenblat. RE: Bild erzeugen - GerdW - 27.09.2016 09:07 Hallo cbahn, Zitat:ich glaube das zusammensetzen dauert so lange.Dann musst du dein VI optimieren… RE: Bild erzeugen - cbahn - 27.09.2016 12:15 Ja da hast Du recht. Anbei ein Screenshot von meiner umrechnung. Mir fällt nur gerade nichts besseres ein. Vieleicht hat ja einer von euch eine Idee dazu. [attachment=56701] RE: Bild erzeugen - jg - 27.09.2016 12:56 Ich verstehe nicht, wieso du etwas in U16 wandelst - oder überhaupt jedes Byte in Hex und dann wieder zurückwandelst... Offenbar enthält dein Datenstream die Daten schon im Binärformat. Header abtrennen, den Rest zusammenfassen (z.B. Strings aneinanderhängen) und einmal mit WriteToBinaryFile (ohne Größeninformation) wegschreiben. Dann wird sich auch herausstellen, was für ein Bildformat übertragen wird. Gruß, Jens RE: Bild erzeugen - GerdW - 27.09.2016 13:00 Hallo cbahn, alles, was mit dem Erstellen von Substrings zu tun hat, ist langsaaam… Warum nicht einfach TypeCast - die Funktion kennst du doch!? [attachment=56702](gleich 2 Methoden…) |