LabVIEWForum.de - Array Elementweise einlesen und mittels Schwellwert ändern

LabVIEWForum.de

Normale Version: Array Elementweise einlesen und mittels Schwellwert ändern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe ein Problem:

Ich habe ein Graustufenbild 2688x1520 in ein 2D Array gewandelt und möchte nun jedes Element prüfen, ob der Grauwert >230 ist und wenn ja ein Binär-Array erzeugen.
Anbei mein Aufbau. Allerdings hab ich das Problem, dass mein Ausgangsarray immer leer (0) ist

Kann mir jemand helfen, bzw den Fehler entdecken?
Danke vorab, Grüße.
Hallo Danius,

was immer hilft, ist ein VI statt eines Bildes anzuhängen.
Und was auch immer hilft, ist einmal Ctrl-U zu drücken, bevor man ein Bild oder VI hochlädt…

Wieso wird dein 2D-Array mit den Bilddaten in ein 3D-Array umgewandelt?
Warum nutzt du nicht einfach die Autoindizierung, um die Pixel auszulesen?
Warum nutzt du nicht einfach die Autoindizierung, um dein boolsches Array zu erstellen?
Warum nutzt du ReplaceArraySubset ohne Schieberegister? THINK DATAFLOW!
Warum nutzt du nicht einfach Polymorphie, um die Graustufe zu testen?
Kurz: Was soll diese riesige FOR-Loop bewirken?

[attachment=53715]

Edit: Herzlich wollkommen! Big Grin
Es ist schwierig, in einem Array der Größe 0x0x0 ein Element zu ersetzen. Sad

Gruß, Jens

EDIT: Korrektur: Größe 1x0x0x0 ... Hilfe, ein 4D-Array, wozu meinst du, dass du das brauchst?
Polymorphie ist das Stichwort Smile


Gruß, Marko
Verdammt!
gleich 2 mal zu spät.
Hallo zusammen,

danke für die Antworten, passt jetzt soweit.

Ich möchte jetzt noch die >230 Pixel in dem entstandenen Binär Array zählen.

Ich habe eine True-case Struktur in die Schleife genommen und wollte darin bei jeder 1 inkrementieren, allerdings erhöht sich mein Inkrement bei mehr als 2 oder mehr aufeinanderfolgenden 1en nicht.

Habt ihr eine Idee?

Kann leider kein VI hochladen, da LV auf einem anderen Rechner läuft und der unten im Labor ist.

Danke.
Glas1 Weil du kein Schieberegister verwendest? Think Dataflow!

Gruß, Jens
Hallo Danius,

Zitat:Ich möchte jetzt noch die >230 Pixel in dem entstandenen Binär Array zählen.
Das kann man Element für Element auszählen.
Man kann aber auch das boolsche Array per "boolean to 0/1" in Zahlen umwandlen und einfach mit der Summenfunktion zusammenaddieren.
(Angesichts deiner Arraygröße würde ich zeilenweises konvertieren und summieren vorschlagen.)

So:
[attachment=53725]

Ansonsten: Jens' Hinweis beachten und LabVIEW lernen. Sowas wird in den Einsteigerkursen erläutert!
Hallo Zusammen,

Mein Name ist Thomas und bin neu was die Programmierung mit LabVIEW angeht.


Zu meinem Problem. Ich muss ebenfalls Bilder auswerten. Die Anzahl der Bilder variiert dabei je nach Aufnahme. Das Einlesen der Bilder und das auslesen der Pixel habe ich auch schon geschafft.

Ich möchte, dass jedes 2D Array was entsteht untersucht wird, ob es einen Wert über 120 beinhalten, wenn nicht, dann wird das Array gelöscht und wenn es einen Wert enthält soll das Array weitergegeben werden. Ich habe hier das Problem, dass er mit bei der Case-Struktur einen Fehler ausgibt. Mit ist siweit bewusst, das der Vergleich auch ein 2D Array ausgibt, jedoch habe ich keine Lösung wie ich das machen kann.

Sie haben zwei Elemente unterschiedlichen Typs miteinander verbunden einmal ein 2D array und boolean.

Im Anhang ist einmal das Block-Diagramm und einmal ein Struktogramm, damit ihr wirklich wisst, was ich meine.

Ich hoffe ihr könnt mir helfen Smile
Hallo Thomas,

herzlich willkommen im LabVIEW-Forum!

Zitat:Sie haben zwei Elemente unterschiedlichen Typs miteinander verbunden einmal ein 2D array und boolean.
Es gibt da Funktionen wie "OR array elements", die in solchen Fällen hilfreich sind.
Oder man macht einen Rechtsklick auf die Vergleichsfunktion und ändert den Vergleichsmodus! Steht auch in der LabVIEW-Hilfe zur Vergleichsfunktion

Zitat:einmal ein Struktogramm, damit ihr wirklich wisst, was ich meine.
Zur Umsetzung dieses Struktogramms: Du löscht zwar das Array, aber du ignorierst es nicht. (THINK DATAFLOW!)
Hallo Gerd,

vielen Dank für die schnelle Antwort. Es hat geklappt! Also nochmal ein dickes Danke.

Bezüglich des Strucktogramms: Da auch nochmal ein Danke. Ich habe das sofort geändert.

Gruß,

Thomas
Referenz-URLs