INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

IMAQ Image über globale variable - bild springt



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

23.01.2011, 19:27
Beitrag #1

J_B Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Feb 2008

2010
2003
kA

79110
Deutschland
IMAQ Image über globale variable - bild springt
Hallo alle zusammen,

ich habe hier ein kleines Problem: Ich lese Bilder über ein SubVI von einer uEye Kamera ein. Das funktioniert soweit auch. Die Bilder werden dann kontinuierlich an eine globale Variable übergeben. Im Hauptprogramm wird dann je nach Bedarf ein aktuelles Bild aus der globalen variable gelesen. Das Problem ist, dass das Bild im Hauptprogramm unregelmäßig "springt", sich also verschiebt und die Größe ändert. Im ursprünglichen Programm und in der globalen Variable kommt das nicht vor.

Was mache ich falsch oder kann man das Problem irgendwie umgehen?

Grüße
Jens
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
23.01.2011, 20:38 (Dieser Beitrag wurde zuletzt bearbeitet: 23.01.2011 20:46 von J_B.)
Beitrag #2

J_B Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Feb 2008

2010
2003
kA

79110
Deutschland
IMAQ Image über globale variable - bild springt
Ich konnte das Problem etwas eingrenzen: die Anzeigeprobleme treten immer dann auf wenn während der Bildaufnahme noch ein anderes VI bzw. eine parallele While Schleife läuft
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.01.2011, 21:42
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
IMAQ Image über globale variable - bild springt
Laut Titel gibst du den Bild-Inhalt über ein IMAQ-Bild weiter.
Hier musst du aufpassen! Ein IMAQ-Bild ist "nur" eine Referenz auf einen Speicherbereich (also quasi ein Pointer). Wenn du also das Bild (eigentlich die Referenz) gerade anzeigst, wenn du in einem anderen Prozess gerade was parallel machst, dann kommt es zu den Effekten wie beschrieben.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.01.2011, 00:16
Beitrag #4

J_B Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Feb 2008

2010
2003
kA

79110
Deutschland
IMAQ Image über globale variable - bild springt
Alles klar, das war mir nicht bewusst. Wie kann ich denn am geschicktesten ein IMAQ-Bild in ein "reales" Bild umwandeln, das ich dann von einem VI zum nächsten übergeben kann?
Danke auf jeden Fall für den Tipp.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.02.2011, 11:36
Beitrag #5

J_B Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Feb 2008

2010
2003
kA

79110
Deutschland
RE: IMAQ Image über globale variable - bild springt
Hat keiner eine Idee wie man das Problem umgehen könnte? Das Problem besteht immernoch, auch wenn keine VIs parallel laufen. Es tritt nur nicht mehr so häufig auf. Ich habe folgende Sachen ausprobiert, allerdings mit mäßigem Erfolg:

- Das Bild über die Zwischenablage übergeben und als Pixmap weiterverarbeiten
- Direkte Umwandlung in Pixmap

Es kann aber ja eigentlich nicht so schwer sein ein gespiegeltes Kamerabild anzeigen zu lassen...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.02.2011, 12:43
Beitrag #6

Panther Offline
LVF-Grünschnabel
*


Beiträge: 13
Registriert seit: Sep 2010

2010
2009
DE

90453
Deutschland
RE: IMAQ Image über globale variable - bild springt
Ist es nicht nur ein einfacher Anzeigefehler des Displays bzw. Grafikausgabe an den Bildschirm?

Wenn ich bei mir z.B. ein Overlay erzeuge und das Bild wird nur alle 150ms aktualisiert, kann ich das overlay sehen. Wenn ich die Aktualisierung auf 10ms senke, springt bei mir das Bild (wie in deinem Fall), es ist auch kein Overlay zu sehen.

Allerdings erhalte ich korrekte Daten auf der Festplatte, trotz der Darstellungsfehler.


In dem Sinne... hoffe dir ein bisschen geholfen zu haben.


MfG
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
26.02.2011, 11:08
Beitrag #7

gottfried Offline
LVF-Guru
*****


Beiträge: 1.735
Registriert seit: Mar 2007

2019
2004
EN

20**
Oesterreich
RE: IMAQ Image über globale variable - bild springt
Hallo,

ehrlich gesagt ich habe nicht den ganzen Thread durchgearbeitet:

* wenn Du ein Bild Global speichern oder in einer Queue verschicken möchtest, musst Du es in ein Array of Numbers umwandeln, dann geht das - dann ist es ja auch keine Referenz sonder "wirkliche" Daten

* Wenn es in LV eine Bildanzeige "komisch" ausschaut, testweise einfach 200ms Wait "hinter" dem Anzeigen und die Anzeige passt (meistens). Der Grund liegt in der internen Optimierung von LV, jede fuzzy-Änderung wird am FP nicht angezeigt.

Viel Glück

Gottfried
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.03.2011, 10:47
Beitrag #8

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: IMAQ Image über globale variable - bild springt
LabVIEW IMAQ images sind wie schon angeben halt Referenzen auf ein Datenfeld und nicht die Daten selber. Grundsätzlich ist es daher sinnvoller, die Erfassung und Verarbeitung mit anschliessender Darstellung sequentiel zu tun. D.h. Dein seperater Loop der die Daten erfasst und in eine Global steckt ist eigentlich sehr suboptimal.

Wenn Du das Ganze stattdessen in ein VI steckst und hintereinander abarbeitest hast Du das Problem schon fast gefixt. Es kann dann noch sein dass Du für das endgültige Display mit "IMAQ Copy" eine Kopie des IMAQ Images machen musst, da ansonsten die Erfassung im Moment wo ein neues Bild eingelesen wird, das angezeigte Bild überschreibt.

Dazu ist noch zu sagen: Globals um Daten im Programm herumzureichen ist IMMER falsch. Das sieht man hier sehr gut aber macht auch mit anderen LabVIEW Datentypen keinen Sinn und verursacht oft schwer debugbare Raceconditions.

Arbeite Dich etwas ein in verschiedene Designpatterns wie das Producer-Consumer Designpattern und andere und Du wirst nie mehr im Leben zurückgehen wollen um Globals zur Datenübergabe zu verwenden.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  String nach IMAQ Bild Zelos 3 200 20.03.2024 18:53
Letzter Beitrag: Martin.Henz
  IMAQ Bild von Festplatte laden und Spektrum erstellen ostone 8 7.146 28.04.2015 07:29
Letzter Beitrag: ostone
  IMAQ Image Control Default Value löschen Cardinal1664 1 3.635 22.05.2013 14:19
Letzter Beitrag: Cardinal1664
  Überlagerung eines Intensitätsgraphen mit einem Imaq Bild Vrees89 3 5.154 20.12.2012 09:51
Letzter Beitrag: Kasi
  Bild skalieren -> IMAQ Resample VI nicht auffindbar flojak 2 5.271 30.07.2012 08:38
Letzter Beitrag: flojak
  get image by name, dispose image by name, list of active images gottfried 1 5.025 16.04.2012 13:30
Letzter Beitrag: b.p

Gehe zu: