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 

Schleife hält sich nicht an Wartezeit



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!

25.02.2010, 09:44
Beitrag #1

kaiman Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 146
Registriert seit: Dec 2008

7.1.1, 2011
2007
EN

28***
Deutschland
Schleife hält sich nicht an Wartezeit
Hallo LabVIEW-Freunde,

ich hab ein Problem, eigentlich sind es zwei. Aber zunächst das Hauptproblem.
Ich nehme mit einer Videokamera Bilder auf, und speicher diese als Einzelbilder ab(ca. 3000). Als Dateiname nummeriere ich sie einfach aufsteigend durch. Nun möchte ich die gespeicherten Bilder laden und anzeigen. Ich erstelle mir also erst ne Liste mit allen Bitmaps aus dem gewünschten Verzeichnis und nutze sie zum Aufrufen der Bilder. In einer while-Schleife geh ich nun durch die Liste und lade die entsprechenden Bilder. Damit die Schleife nicht einfach mit maximaler Geschwindigkeit läuft, habe ich die "Armbanduhr" als Wartezeit eingesetzt. So soll die Ablaufzeit variiert werden können, von Slowmotion bis Zeitraffer. Die Schleife führe ich nun so oft aus, wie Bilder im Verzeichnis. Das Problem ist nun, dass die Schleife schneller läuft als ein Bild geladen wird. Die Schleife ist also zu ende, bevor alle Bilder geladen wurden, was doch eigentlich nicht sein dürfte!? Ich hab schon for-, while- und timed-loop verwendet, bei allen das gleiche Problem.
Das zweite Problem ist, dass ich von der Funktion zum Laden der Bitmap bei manchen Bildern einen Fehler bekomme (Fehler 7) oder auch bei ner ganzen Serie(Fehler 8). Bilder sind nicht schreibgeschützt o.ä....
Wacko
Also, wenn jemand einen Ansatz hat, wie ich diese Probleme in den Griff bekommen könnte, wär mir sehr geholfen!
Ich lad mal zwei Versionen des VIs hoch(LV 7.1).

Beste Grüße, Kai


Angehängte Datei(en)
Sonstige .vi  Bilderserie_wiedergeben_0_0_1.vi (Größe: 93,38 KB / Downloads: 242)

Sonstige .vi  Bilderserie_wiedergeben_0_0_4.vi (Größe: 167,39 KB / Downloads: 229)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.02.2010, 21:11
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Schleife hält sich nicht an Wartezeit
' schrieb:Damit die Schleife nicht einfach mit maximaler Geschwindigkeit läuft, habe ich die "Armbanduhr" als Wartezeit eingesetzt. So soll die Ablaufzeit variiert werden können, von Slowmotion bis Zeitraffer.
Die Funktion "Metronom" (Warten auf Vielfaches von) macht genau das, was du programmiert hast: Eine Differenz berechnen und absolut Warten.

Zitat:Das Problem ist nun, dass die Schleife schneller läuft als ein Bild geladen wird. Die Schleife ist also zu ende, bevor alle Bilder geladen wurden, was doch eigentlich nicht sein dürfte!?
Ich glaube ich kann ohne es ausprobieren zu können, nachvollziehen was du meinst: Das, was du beobachtest kann sein. Das liegt an folgendem (wenn es denn das ist, was ich denke, mit Vision kenn ich micht nicht aus):
Ein Bild wird von Platte geladen, umgerechnet und an das Element "Image" übergeben - und nur übergeben. Mit dieser Übergabe ist der Sequenzrahmen dann aber auch schon beendet. Die tatsächliche Anzeige der übergebenen Daten im Frontpanel des Images geschieht im Hintergrund, also eigenlich parallel zum dritten, vierten und fünften Sequenzrahmen. Diese Anzeige aber dauert länger als das Nachladen des nächsten Bildes. Dieses Effekt würdest du minimieren können, wenn du deine Ablaufzeit erhöhen würdest.

Die Methode, die tatsächliche Anzeige im Hintergrund zu machen, hat druchaus seine Berechtigung. Bei Graphen gibt es ein ähnliches Phänomen.

Kuck mal im Kontextmenü des Images unter Fortgeschritten->Synchrone Anzeige. Klick da mal und kuck, was sich tut.

Zitat:Das zweite Problem ist, dass ich von der Funktion zum Laden der Bitmap bei manchen Bildern einen Fehler bekomme (Fehler 7) oder auch bei ner ganzen Serie(Fehler 8). Bilder sind nicht schreibgeschützt o.ä....
Kuck mal, wie der Dateiname heißt, bei dem ein Fehler auftritt. Gibt es diese Datei?

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.02.2010, 00:30 (Dieser Beitrag wurde zuletzt bearbeitet: 02.03.2010 09:27 von jg.)
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Schleife hält sich nicht an Wartezeit
' schrieb:Also, wenn jemand einen Ansatz hat, wie ich diese Probleme in den Griff bekommen könnte, wär mir sehr geholfen!
Ich lad mal zwei Versionen des VIs hoch(LV 7.1).
Liegt mglw. / wahrscheinlich an der nicht-initalisierten Feedback-Node. Ersetze die einmal durch ein Shift-Register (Rechstklick, Replace with Shift-Register), dann siehst du (hoffentlich), was ich meine.

Und diese Sequenz kannst du dir sparen. Das Wait-VI einfach parallel zu deinem Ladenvorgang platzieren, dann wird in jedem Durchgang der Schleife auf jeden Fall x Millisekunden gewartet.
   

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
02.03.2010, 09:16
Beitrag #4

kaiman Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 146
Registriert seit: Dec 2008

7.1.1, 2011
2007
EN

28***
Deutschland
Schleife hält sich nicht an Wartezeit
Vielen Dank für die Antworten/Tipps! Leider war ich krank und hab mich heute erst wieder daran gemacht!
Ich hab die Vorschläge mal getestet.
Irgendwie ist die Geschichte vertrackt... Wenn das Sychronous Display aktiviert ist, läuft das Auslesen und Anzeigen mal fix(10ms) und dann wieder langsam(65ms) ab. Erst hab ich vermutet, dass es am Bildinhalt liegt, aber das hat sich nicht bestätigt. Das eigentliche Problem, dass die Schleife schneller läuft als vorgesehen, bleibt leider bestehen. Ich lasse mir ja unten im Blockdiagramm den Schleifenindex und parallel dazu den aktuellen "Dateinamen" anzeigen. Daran kann ich sehen, dass der Schleifenindex schneller wächst, als der Dateiname. Das Ergebnis ist, dass die Schleife nach der Hälfte der Bilder am Ende ist... Ich könnte ja auch auf die Wartezeit verzichten, aber irgendwie wärs schon ganz nett, wenn wenigstens alle Bilder wiedergegeben wurden.
:???:
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.03.2010, 09:52
Beitrag #5

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Schleife hält sich nicht an Wartezeit
Das kann eigentlich gar nicht sein. Das Wait-VI zwingt LabVIEW dazu, mindestens die eingestellte Zeit zu warten.

Bist du dir sicher, dass deine Sequenz-Nummern in den Bildernamen wirklich nur jeweils einmal vorkommen? Denn was du dir anzeigen lässt, ist nicht der komplette Dateiname, sondern nur die Nummer!

Mach mal die folgenden Vereinfachungen:
   
und analysiere einmal in Ruhe, was im Array "sorted array" steht! Vielleicht tauchen da Zahlen mehrfach auf?!

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
02.03.2010, 13:02 (Dieser Beitrag wurde zuletzt bearbeitet: 02.03.2010 13:05 von kaiman.)
Beitrag #6

kaiman Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 146
Registriert seit: Dec 2008

7.1.1, 2011
2007
EN

28***
Deutschland
Schleife hält sich nicht an Wartezeit
Ihr seid echt super! Rofl2
Vielen Dank für die schnelle und vor allem GUTE Hilfe!
Ich hab mich jetzt an mehr oder weniger an dem Bild von Jens orientiert. Funktioniert! Du hattest übrigens Recht damit, dass einige Werte doppelt oder x-fach vorkommen. Kam durch die ungeschickte Erzeugung meines Arrays mit den Dateinamen.
Das einzige Problem was bleibt, ist die Tatsache, dass ab einer zu kurzen Wartezeit die ganze Geschicht ins Stocken kommt und nicht schneller, sondern langsamer abläuft.
Aber so ist das schon super!Dais

Gruß, Kai
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.03.2010, 13:28
Beitrag #7

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Schleife hält sich nicht an Wartezeit
Um die Schleife schneller auszuführen, könntest du auch das Einlesen der Bitmaps auslagern.
Also vor deiner Anzeige-Schleife alle Bitmaps einlesen und in ein Array speichern. In der Anzeige-Schleife dann auf den entsprechenden Arrayindex zugreifen und das Bild darstellen.

Ist nur eine Idee, aus Mangel an vielen tausenden Bitmaps hab ich das jetzt nicht geprüft.


Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.03.2010, 14:32
Beitrag #8

kaiman Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 146
Registriert seit: Dec 2008

7.1.1, 2011
2007
EN

28***
Deutschland
Schleife hält sich nicht an Wartezeit
Das wär in der Tat auch noch ein Ansatz! Ist dann nur die Frage, wie lange das Laden bei den ganzen Bildern dann dauert. Wär auch blöd, wenn man so lange Warten muss bevor man was sieht. Ich werds bei Gelegenheit mal probieren. Oder vllt. doch jetzt gleich?! Mal sehn.
Danke!

Gruß, Kai
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.03.2010, 15:17
Beitrag #9

kaiman Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 146
Registriert seit: Dec 2008

7.1.1, 2011
2007
EN

28***
Deutschland
Schleife hält sich nicht an Wartezeit
Habs grad probiert. Die Idee ist gut, aber leider dauert das Laden dann schon recht lange, bevor man ein Bild bekommt. Bei über 2000 Bilder bekomme ich dann auch noch den netten Hinweis, dass der Speicher voll ist. Schade...
Trotzdem Danke!

Gruß, Kai
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.03.2010, 15:42
Beitrag #10

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Schleife hält sich nicht an Wartezeit
Ich hab auch eine Idee. Smile

Mach's gleichzeitig: Laden von Platte und anzeigen.

Mach ein paralleles SubVI, in dem du die Files nur einließt. Und zwar in eine Queue. Achte darauf, dass in der Queue nie mehr als 100 Bilder stehen. In einem zweiten, parallelen SubVI (oder paralleler Loop) liest du die Queue aus und zeigt die Bilder an. Auslesen tust du mit der Anzeigegeschwindigkeit. Wenn die Queue leer ist, wartest du bis was drinnen steht.

Abbrechen geht die Anzeige-Loop dadurch, in dem die Lese-Loop ein leeres Image in die Queue schreibt, wenn alle Files gelesen wurden.

Jetzt hast du sowas wie einen Stream wie beim Videokucken im Browser.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
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
  Typdef aktualisiert sich nicht Gruenschnabel 2 5.968 08.10.2014 14:01
Letzter Beitrag: jg
  .stl lässt sich nicht darstellen exkluski 0 3.605 29.11.2012 20:28
Letzter Beitrag: exkluski
  Es bewegen sich Dinge, die sich nicht zu bewegen haben Zufall 2 5.516 21.06.2012 08:13
Letzter Beitrag: Funaukel
  Intensity Chart - Y-Achse lässt sich nicht log. darstellen ?! darkmask 1 4.536 31.10.2007 18:44
Letzter Beitrag: jg

Gehe zu: