LabVIEWForum.de
IMAQdx - Videoverarbeitung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Module (/Forum-LabVIEW-Module)
+---- Forum: LabVIEW Vision (/Forum-LabVIEW-Vision)
+---- Thema: IMAQdx - Videoverarbeitung (/Thread-IMAQdx-Videoverarbeitung)

Seiten: 1 2 3


RE: IMAQdx - Videoverarbeitung - b.p - 03.01.2012 20:49

Teilen sollst du das i bei der Schleife.
Nur wenn das Modulo 10 gleich 0 ist, dann wird im Case die BV gestartet. Sonst wird das Bild einfach weggeworfen/ignoriert.

Mhm, das hört sich doch einmal gleich viel sinnvoller und vor allem lösbarer an.
Bitte installier/verwende den Vision Assistant, der wird dabei ziemlich helfen.

Nimm Bilder, die möglichst nahe am Problem sind, um dein Testprogramm zu schreiben. (Beispielsweise das, was du mir gerade gegeben hast.)
Hier würde ich erst mal in Graubild verwandeln, weil das Patternmatching das braucht.
Der nächste Schritt ist eine Veränderung des Histogramms, damit die gesuchten Moleküle möglichst eindeutig sind. Hier habe ich einfach die Kurve so geändert, dass diese ähnlichen Moleküle verschwinden. Dieser Bildverbesserungsschritt ist ganz stark abhängig von deinen Probedaten.
Der letzte Schritt ist das Pattermatching. Dabei muss man den ROI auf das ganze Bild zeichnen, und dann ein neues Template mit dem Editor erstellen (einfach dein Template auswählen.. falls das später mal dynamisch sein soll, gibts dafür ne Funktion.) Weiters muss man noch einstellen, dass es mehr als eines finden soll und evtl. den Schwellwert niedriger machen.
Voila.
[attachment=37932]

Dann einen LabVIEW-Code erstellen lassen (unter Tools) und fertig ist die Problemlösung :-)
Für die sxm-whatever-Daten brauchst du dann nur noch Größe des Gesamtbilds und die des IMAQ-Bilds. Daraus gibt sich der Skalierfaktor für die Koordinaten, die dir das Patternmatching liefert.

Gruß,
Birgit


RE: IMAQdx - Videoverarbeitung - fabqu - 03.01.2012 22:48

Wow Big Grin
Danke dir.
Da werd ich mich morgen gleich mal ransetzen!!!

Vielen Dank!


RE: IMAQdx - Videoverarbeitung - fabqu - 04.01.2012 11:47

Soso.
Also, ich habe nun folgendes gemacht: Erst mal ein Graubild erstellt, dann nach Cent-Münzen den Pattern Matching eingestellt.
Auf dem Bild sieht es, denke ich, auch recht gut aus. Aber halt alles mit der Video-Cam.
Es werden auch teilweise 7-9 Treffer angezeigt, allerdings werden diese nicht im Image2 rot umrandet...
Wie kann ich das denn einstellen? Ich will ja sehen, wo er Treffer vermutet.
Und: Ich lasse auch noch das "alte", unverarbeitete Videobild darstellen. Aber seit Vision Assistant wechseln beide Videobilder kurz (wenn die Schleife die 10 durchlaufen hat) in ein Graubild und werden danach wieder farbig. Kann man das abstellen?
Und warum wird das Image2, das ja durch den Vision Assistant dargestellt wird, auch bei Schleifendurchläufen mit Rest !=0 dargestellt? Sollte es nicht nur alle 10 Durchläufe geprintet werden?

EDIT: Habe nun gerade folgendes verändert: Der Assistant wird nun nur noch durchlaufen, wenn ich in dem Container die "Verarbeitet" KArtei anklicke, dann aber bei jedem Schleifendurchlauf. Funktioniert! Gehe ich auf "Video", wird das normale Farbbild dargestellt. Und auf "Verarbeitet" arbeitet der Assistant mit dem Graubild! Ist das OK so, oder überfordert es evtl den Assistant, wenn ich jedes Bild verarbeiten will?


Danke!
Lg, Fabian


RE: IMAQdx - Videoverarbeitung - b.p - 04.01.2012 12:05

Nun mal langsam.
1) Skalierte (Verzerrte) Münzen und Geometric Matching ist keine gute Idee, weil Geometric Matching auf Formen sucht.. und wenn man die Skalierung zulässt, findet es eben auch Euro-Münzen wie Cent-Münzen weil Kreis=Kreis. Wenn man in der BV ein Probeprogramm schreibt, bleibt man nahe genug am realen Problem. Das hier kann gar nicht gut funktionieren. Wenn, dann nimm eine unverzerrte Ansicht von oben. Oder gleich das reale Ding.
2) Mit Tools - Erstellen - LabVIEW-VI kann man "richtigen" LV-Code erstellen, nicht diese komischen Express-VIs, da kann man nichts vernünftig editieren, und das muss man hier.

Jetzt kommt ein wesentlicher Schritt, den man bei IMAQ verstehen muss und der für LabVIEW ein bisschen atypisch ist: Ein IMAQ-Bild (das lilafarbene Zeug) ist eine Referenz. Das heißt ein Zeiger auf einen bestimmten Speicherbereich. Und wenn man den weitergibt, dann wird immer auf dem selben Bild gearbeitet.
Das heißt, was du jetzt machst, ist, dass du dein erstes Bild zB in Grau verwandelst. Jedes zehnte Mal. Und dieses Bild, auch wenn du das an einer in LabVIEW "anderen" Stelle ausgibst, ist und bleibt Grau, weil die Graufunktion in den Speicher schreibt.
Das ist nicht sehr datenflussorientiert. Du kannst das testen, in dem du alle Bilder grau machst, und vor dem Block eine Ausgabe machst. Das Bild wird grau sein. (Siehe Anhang - das png kannst du übrigens, sofern die LV-Version passt, einfach in dein Blockdiagramm ziehen..)
Der Name des Bildes ist wichtig - der ist, womit LabVIEW diesen Speicherbereich identifiziert. Dh, wenn du zwei Bilder mit dem selben Namen erstellst, greifen die auf ein und denselben Speicher zu. Kann man wollen, tust du aber nicht.

Was du machen musst, ist eine Kopie von diesem Bild. Heißt logischerweise IMAQ Copy - den Input bekommst du aus einem IMAQ Create. Wenn du das machst, wird das erste Image farbig bleiben, und nach der Kopie hast du ein weiteres. Wenn du das öfter machst, solltest du die IMAQ Dispose Funktion einsetzen, oder immer denselben Namen verwenden, dann werden die Daten überschrieben.
Dann machst du die BV.

Wenn du die Create-VI machst, kriegst du übrigens die ROI-Anzeige "gratis" mit.


RE: IMAQdx - Videoverarbeitung - fabqu - 04.01.2012 12:18

Jap. Das mit den "Lila Dingern" hab ich nun verstanden.

Aber leider habe ich keinen Menüeintrag unter Tools "erstellen". Weder im Blockdiagramm, noch innerhalb des Assistant.

Die verzerrte Ansicht habe ich gewählt, da die Kamera an einem Roboter hängt, und diese Ansicht ist sozusagen die standard-Sichtweise der Kamera.
Soll ich dann Pattern Matching versuchen?


RE: IMAQdx - Videoverarbeitung - b.p - 04.01.2012 13:08

Kannst du vielleicht nur nach Münzen (runden Teilen..) suchen?


RE: IMAQdx - Videoverarbeitung - fabqu - 04.01.2012 13:23

Klar!
Wie schon mal erwähnt, diese Aufgabe hier ist nur Vorbereitung zu dieser Molekül-Sache. Und dort (bei den Molekülen) ist sowohl das Mikroskopbild, als auch das Tamplate sehr viel eindeutiger als hier in meiner Video-Verarbeitung.

Zu "Create VI": Diese Menüeinträge, hatte ich nicht, da ich den Assistant immer im Blockdiagramm gestartet habe. Man muss ihn aber unabhängig starten Wink

Werds jetzt mal mit Geometric versuchen.
Muss man da noch irgendetwas machen, um ein VI zu erstellen?
Ich folge dem Menü, wähle den Desktop als Pfad, wähle "Smart Camera Acquisition" und wähle alle Einstellmöglichkeiten aus.
Dann drücke ich finish, es dauert einige Zeit, und das wars.
Aber es liegt nix auf dem Desktop...


RE: IMAQdx - Videoverarbeitung - b.p - 04.01.2012 13:55

Hmm.. LabVIEW schließen hilft.


RE: IMAQdx - Videoverarbeitung - fabqu - 04.01.2012 14:21

Leider nix. Auch nach PC-Neustart nix Sad


RE: IMAQdx - Videoverarbeitung - b.p - 04.01.2012 14:32

Dann ist vermutlich was falsch installiert (Updates/Servicepack gemacht/mehrere LabVIEW-Versionen auf einem Rechner, nicht sauber deiinstalliert?).
Dann versuchen im Windows-Software Menü den Vision Assistant zu reparieren.

Ich hab sonst keine Ahnung was da falsch läuft, aber für mich wäre das Zeit, den Support anzurufen.