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!
08.07.2015, 16:53 (Dieser Beitrag wurde zuletzt bearbeitet: 08.07.2015 16:58 von FrDtPa.)
Zitat:Schon, ist aber doppelt gemoppelt und somit überflüssig.
habs verstanden.
Zitat:Es wird der Standard-Wert des entsprechenden Datentyps ausgegeben. Bei Zahlen ist das 0, bei Strings ein leerer String, bei Arrays ein leeres Array, bei Booleans ein False, usw. usw.
wieder was gelernt, aber dreh mich trotzdem im Kreis? Könnte einer Erbarmen mit mir haben und mir zeigen wie es richtig geht?
Zitat:Je nach Größe deiner Bilder kann dein VI übrigens fehlerhafte Grauwerte liefern, denn nach der Funktion "Boolean to (0,1)" hast du ein 2D-Array vom Datentyp I16 vorliegen. Sollten hier mehr als 32767 Einser enthalten sein, dann erzeugst du bei der darauf folgenden Summe einen Datenüberlauf...
was wäre daher eine Alternative? Bilden sind im Schnitt alle um 4496x3000 groß, je nach Kameraeinstellung.
Grüße
08.07.2015, 17:38 (Dieser Beitrag wurde zuletzt bearbeitet: 08.07.2015 17:42 von GerdW.)
Zitat:Könnte einer Erbarmen mit mir haben und mir zeigen wie es richtig geht?
Momentan hast du doch DIESES Problem gar nicht mehr…
Ansonsten immer daran denken: THINK DATAFLOW!
Zitat:was wäre daher eine Alternative?
Einen Datentyp verwenden, der dort nicht sofort ins Limit läuft! I32 zum Beispiel…
Weitere Probleme:
- Deine Dateiauswahl filtert nicht nach JPG-Dateien. (Es gibt einen "Muster"-Eingang!) Sobald eine Nicht-JPG-Datei im Ordner ist, bekommst du eine Fehlermeldung.
- Es könnte Probleme mit großen JPGs geben, ich bekam gerade eine Fehlermeldung (Error 1…) beim Einlesen eines 3900×6000 Pixel großen Bildes…
@GerdW, ich werds mir merken: THINK DATAFLOW
Gibt es einen Grund warum du bestimmte Teile aus dem Loop genommen hast?
Und gibt es ein einen Grund warum das Auswerten doch so lange dauert? Hab es jetzt bei 50 Bildern probiert und da hat es gefühlt 2min gedauert bevor die Werte ausgegeben wurden. Hab es später bei 1500 Bildern vor...
Nicht nur "ReadJPG" wird Zeit verbraten, auch die ganzen impliziten Speicherallozierungen werden (ein wenig) Zeit brauchen.
Nur mal so:
(EDIT): Aus einem U32-Array (Größe ca. 50 MB) machst du ein U8-Array. Damit holst du dir übrigens nur die Stärke des Blau-Anteiles! R und G Anteil schmeißt du weg. Oder arbeitest du mit Graustufen-JPGs?
Das U8 Array nach dem Einlesen belegt bei deiner typischen Größe so ca. 12-13 MB Speicher.
Nach dem Vergleich kommt ein Boolean-Array heraus, ebenfalls 1 Byte pro Element, also nochmal 12-13 MB.
Boolean to (0,1): Der Ausgang ist ein I16-Array -> 25 MB
Wandlung nach I32 -> 50 MB.
Ob das wirklich ein merklicher Zeitfresser ist, muss man im Detail ausprobieren und messen. Aber der Platz für diese Speicherallozierungen muss schon vorhanden sein.
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!
- Es gibt das IMAQ-Modul, das kann wohl auch JPGs lesen. Kenn ich aber nicht weiter, musst du mal Gottfried fragen…
- Externe Drittsoftware zum Bilderkonvertieren…
@jg, ja ich habe vor nur mit Graustufen-jpgs zu arbeiten.
@GerW, ist es z.b. Grundsätzlich möglich Software wie ImageJ so in Labview einzubauen, das ich zum Schluss eine Array bekomme mit Werten für alle Bilder im Ordner?
Zitat:ist es z.b. Grundsätzlich möglich Software wie ImageJ so in Labview einzubauen, das ich zum Schluss eine Array bekomme mit Werten für alle Bilder im Ordner?
"Grundsätzlich" ja.
Über die genaue Ausgestaltung dieser sehr allgemeinen Frage muss man dann das Manual der verwendeten Drittsoftware konsultieren!