LabVIEWForum.de
Array Elemente lesen und ändern - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Array Elemente lesen und ändern (/Thread-Array-Elemente-lesen-und-aendern)

Seiten: 1 2


Array Elemente lesen und ändern - bienee - 11.08.2011 13:42

Hi Leute,

gegeben ist ein Array (z.B. ein Bild, in diesem Fall aber ein 12x12 Array mit Werten von 0-6). Ich möchte jetzt jedes einzelne Element aus diesem Array mit einem Wert vergleichen. Wenn der Wert größer ist, soll das Element mit dem Eintrag 0 überschrieben werden, wenn der Wert kleiner ist, soll der Eintrag in 1 umgeschrieben werden. Den fertigen Array, bestehend aus 0en und 1en will ich hinterher in einem Array wieder darstellen oder irgendwas anderes machen. Wichtig ist erstmal, dass ich hinterher einen Array habe, der nur aus 0 und 1 besteht

Mein Problem ist nun, dass er die geänderten Werte nicht speichert und das bisher geänderte beim nächsten Schleifendruchlauf wieder auf den Ursprung zurücksetzt.

Grüße,
bienee


RE: Array Elemente lesen und ändern - M@rRy - 11.08.2011 13:49

ich denke du solltest die Arrays außerhalb der Schleifen legen. In der ersten Schleife wählst du dann aus dem gesamten Array nur die erste Zeile und in der zweiten Schleife vergleichst du die Werte. Beim "betreten" des Arrays in eine Schleife wird automatisch nur ein Wert gelesen, das kannste mir Rechtsklick auf den Knoten ändern, falls erforderlich. Denke dann sollte das klappen, kanns leider nich auf die Schnelle ausprobieren da ich nur LV 7.1 habe.


RE: Array Elemente lesen und ändern - bienee - 11.08.2011 14:12

Wenn ich die Arrays außerhalb der Schleife habe, läuft er erst die komplette Schleife durch, bevor er das Ergebnis in den output-Array schreibt, was in diesem Fall ja dann nur das Element (12,12) ist oder nicht? Wenn das Programm bei mir im Debug-Modus einmal durchgelaufen ist, ist der Output-Array gleich dem Input-Array (auch das letzte Element).

(11.08.2011 13:49 )M@rRy schrieb:  Beim "betreten" des Arrays in eine Schleife wird automatisch nur ein Wert gelesen, das kannste mir Rechtsklick auf den Knoten ändern, falls erforderlich.

^^Ich verstehe nicht ganz was du damit meinst und mit rechtsklick auf die Knoten finde ich auch nichts, was nach dieser Funktion aussieht. Knoten sind doch in meinem Programm gerade nur die gelben Index-Array- und Compare-Bausteine oder?


RE: Array Elemente lesen und ändern - Lucki - 11.08.2011 14:20

Und hier das schnelle Ausprobieren:

[attachment=35207]


RE: Array Elemente lesen und ändern - GerdW - 11.08.2011 14:27

Hallo bienee,

hier nochmal Luckis Beispiel ohne die unnötigen Schleifen:
[attachment=35208]

Tipp:
Datenfluss beachten, auf lokale Variablen verzichten, Schieberegister für Schleifen verwenden!


RE: Array Elemente lesen und ändern - bienee - 11.08.2011 14:49

Ok...danke Lucki

dann muss ich doch viel genauer beschreiben was ich später machen will. Sinn der Sache ist ein Graustufen-bild in einen Array zu verwandeln und in diesem Graustufen-Bild alle Werte oberhalb einer bestimmten Grenze (irgendein Grauton, den ich jetzt noch nicht kenne, sagen wir mal 100) in die Frabe Weiß zu ändern, also den Wert 255 zuzuordnen und alle Werte unter der Grenze in eine 0 zu ändern um sie damit Schwarz zu machen. Wobei es eigentlich egal ist, wie herum ich das mache. Deshalb wollte ich eigentlich eine allgemeinere Variante programmieren. Wenn ich aber deine Variante in die Tat umsetze muss ich noch herausfinden, wie ich eine 2-Farben Palette erstelle, in der 0 schwarz und 1 weiß ist.
Aber ansonsten ist die Lösung hervorragend.


RE: Array Elemente lesen und ändern - Lucki - 11.08.2011 15:05

(11.08.2011 14:27 )GerdW schrieb:  hier nochmal Luckis Beispiel ohne die unnötigen Schleifen:
Ja klar, und Schande für mich: normalerweise bin ich ja der selbsternannte Verbesserungsbeauftragte für solche Feinheiten. Big Grin


RE: Array Elemente lesen und ändern - bienee - 11.08.2011 15:14

(11.08.2011 14:49 )bienee schrieb:  muss ich noch herausfinden, wie ich eine 2-Farben Palette erstelle, in der 0 schwarz und 1 weiß ist.

reicht es da nicht, wenn wenn ich bei z.B. PictureToPixmap.vi bei depth eine Konstante mit 1 anlege?


RE: Array Elemente lesen und ändern - dimitri84 - 11.08.2011 15:52

(11.08.2011 15:14 )bienee schrieb:  reicht es da nicht, wenn wenn ich bei z.B. PictureToPixmap.vi bei depth eine Konstante mit 1 anlege?
Ist es nicht viel einfacher die richtigen Grauwerte anstatt 0 und 1 reinzuschreiben?


RE: Array Elemente lesen und ändern - bienee - 12.08.2011 07:05

(11.08.2011 15:52 )dimitri84 schrieb:  
(11.08.2011 15:14 )bienee schrieb:  reicht es da nicht, wenn wenn ich bei z.B. PictureToPixmap.vi bei depth eine Konstante mit 1 anlege?
Ist es nicht viel einfacher die richtigen Grauwerte anstatt 0 und 1 reinzuschreiben?

ja...das war mein ursprünglicher Plan. An dieser Stelle bin ich eben nicht weiter gekommen. Ich würde eigentlich gerne selbst bestimmen können welche Werte eingetragen werden.

Grüße, bienee