![]() |
Kamerabild in VI einbinden - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Grafik & Sound (/Forum-Grafik-Sound) +---- Thema: Kamerabild in VI einbinden (/Thread-Kamerabild-in-VI-einbinden) |
Kamerabild in VI einbinden - Kiesch - 02.02.2011 12:38 Hallo liebe LVF Nutzer, ich hab ein kleines Problem und ehrlich gesagt mit der SuFu wenig hilfreiches gefunden. Ich programmiere gerade die Ansteuerung für eine Messkammer in der eine Kamera sitzt. Optimal wäre es jetzt wenn ich direkt über das Kamerabild eine Ansteuerung realisieren kann (ich klicke auf die entsprechende Stelle und meine Messkammer verfährt die Probe vor der Kamera auf die entsprechende Stelle). Dummerweise muss ich ja dafür vermutlich die Kameraausgabe in LabView einbinden (sonst kann ich schlecht mit meiner Mauspotion auf der geklickt wird was anfangen). Das Problem: Die Messkammer ist evakuiert und deswegen wollten wir lediglich über BNC Kabel das Kamerasignal rausgeben. Da kriegt man auch nen Bild raus mit ner TV Karte dazu. Dummerweise ist man dann aber auch genau auf diese TV Karte angewiesen um das Bild zu kriegen, kann also keine Kameralösung von NI nehmen (die es ja wohl gibt). Gibt es da Ansätze / Lösungen wie man das implementieren kann? Gruß Kiesch P.S: Will das klären bevor Kamera / Tv Karte angeschafft sind, da ich so lange noch selbst die Komponenten aussuchen kann. Kamerabild in VI einbinden - Kiesch - 02.02.2011 14:01 Konnte leider aus irgendwelchen Gründen den Eingangspost nicht editieren, deswegen hier die Alternativlösung die mir eingefallen ist (und die ich irgendwo hier im Forum zufällig mal gesehen hatte): Wie kann ich einen (wohldefiniert) Teil des Frontpanels transparent machen? (wichtig: Nicht das ganze) Wie gesagt, ich hab das schonmal gesehen, aber ich weis nichtmehr wo und die Suche hat auch nix brauchbares geliefert. Dann läuft das Bild zwar nicht im VI selbst aber man kann (unter Zuhilfenahme von Kalibrationsparametern) auch drauf zugreifen. Da ich sowieso bestimmte Kalibrationen machen muss vor jeder Messung wäre das also kein größeres Problem das so zu machen. Wie gesagt wenn jemand nen Tipp hat wo ich das finde.... Kamerabild in VI einbinden - Kiesch - 02.02.2011 14:39 Warum verdammich kann ich immer noch nicht editieren? Also: Die Lösung für das Transparenzproblem hab ich doch noch wiedergefunden: http://www.labviewforum.de/index.php?showtopic=12579 *und brav im entsprechenden Thread gedankt ^^ Ich kann also rel einfach mit begrenztem Aufwand nen Workaround basteln *yay* Wenn allerdings noch jemand ne Lösung für das eigentliche Problem hat (Tv Karte mittels Labview auslesen und Bild anzeigen) - immer her damit ^^ Gruß Kiesch *edit* Endlich sehe ich mal nen Edit button *seufz* (an gleicher stelle war der vorher nicht) Also: Problem ist doch noch nicht vollständig gelöst. Zwar kriege ich das FP Transparent, dummerweise kann ich dadurch aber auch Objekte anwählen die sich hinter dem Transparenten FP befinden. (auch ein 2D Bild mit Farbwahl Transparent hilft da nicht, da ich auch hier dahinter befindliche Objekte - also dann wohl auch WinTv in dem ich das Kamerabild laufen lassen würde - auswählen kann. Das führt aber vermutlich zwangsläufig dazu dass ich das Fenster irgendwann versehentlich verschiebe während dem Arbeiten, was natürlich nicht gewünscht ist (dann sind nämlich alle Kalibrierungen futsch)... Weis jemand einen Rat? Kann man diese durchlässigkeit auch für Mausklicks irgendwie unterbinden? Gruß Kiesch Kamerabild in VI einbinden - Martin Heller - 02.02.2011 15:10 ' schrieb:*edit* Editieren ist nur eine gewisse Zeit möglich! Kamerabild in VI einbinden - Kiesch - 04.02.2011 11:35 Da es scheints (an den Aufrufen zu sehen ^^) interessiert versuche ich mal nochwas beizutragen, was ich bisher rausgekriegt habe: Also; offenbar erkennt Windows wenn man eine Farbe auf (komplett) transparent setzt (gewollt) keinen Treffertest mehr. Mit der Methode im verlinkten VI ist es möglich entweder: das VI beliebig stark transparent zu machen - dann allerdings als ganzes - oder aber eine Farbe komplett transparent zu machen (entsprechende Bereiche werden dann scheint es automatisch als durchklickbar interpretiert). Man müsste also entweder festlegen, dass Windows die nun transparenten Bereiche als für Mausklicks solid interpretiert (wie erwähnt werden in denen keine Mausevents erzeugt für das entsprechende VI, was auch für eventgesteuertes programmieren gewisse offensichtliche Nachteile hat); allerdings hab ich da keine Ahnung wie das zu machen ist. Hatte zwar einen Hinweis auf die Funktion "IsHitTestVisible" gefunden (konkret: SetIsHitTestVisible), aber diese ist entweder innerhalb Silverlight oder .net framework in einer dll zu finden, die ich nicht mit dieser Funktion gestartet kriege (im dll Text ist sie aufzufinden, allerdings will labview in der dll keine Funktionen erkennen und weigert sich auch beharrlich nach manueller Eingabe diese aufzurufen). Vermutlich stelle ich mich dabei einfach zu doof an, da mir die Erfahrung mit dem Ansprechen von dlls und praktischem OO Programmieren noch fehlt. Auch wundert mich, dass diese Funktion scheinbar kein Handle auf den Fensterbereich erwartet, wie dies die Funktion für die Transparenz tut. Auch hier bin ich verwirrt. Prinzipiell sollte es damit aber laut beschreibung möglich sein, Bereiche als für Treffertest aktiv zu schalten, allerdings bin ich nicht sicher ob man damit auch transparente Bereiche wieder für Treffertests aktiv kriegt. Davon ab habe ich mittlerweile einen mehr oder weniger guten Workaround: Hinter das eigentliche VI lege ich bei Start ein zweites VI mit FP, dass mit 99% transparenz ausgeführt wird (und damit nicht sichtbar, aber für Treffer empfindlich ist). Das macht zwar die Bedienung / Starten etwas umständlich, aber immerhin kann ich auf diesem Zweiten VI in gewünschten Bereichen Maustreffer abfragen und als Ereignis ins Main VI weitergeben, dass die verarbeitet (schließlich muss ich ja den transparenten Bereich über dem "TV Bild" abfragen). Einziger Nachteil ist, dass ich noch nicht gefunden habe wie ich es vermeiden kann die Globale Variable die die Daten übermittelt nicht zu pollen sondern direkt ein Ereignis im Main VI zu generieren (wir in einer parralelel schleife mit 100ms gepollt - prinzipiell könnte also durch Racing conditions unerwünschtes Verhalten auftreten - glücklicherweise würde sich die Auswirkung darauf beschränken, dass der Falsche Mauszeiger angezeigt wird). Fazit: Ich habe ne Lösung gefunden die geht, aber nicht besonders doll ist... Wenn jemand ne bessere hat immer her damit ![]() |