LabVIEWForum.de - Mittelwert der Helligkeit über alle Pixel im ROI

LabVIEWForum.de

Normale Version: Mittelwert der Helligkeit über alle Pixel im ROI
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
hallo. ich hoffe bitte dass , sie mir helfen können.
Ich bin eine Studentin, und bin ganz neue mit dem Software LabVIEW. Momentan mache Ein Arbeit als Thema Aufbau und Inbetriebnahmen eines Video-Messsystems mit dem Software LabVIEW. ich bin eigentlich so weit, aber ich habe noch ein Kleines Problem. Ich muss ein Diagramm erstellen, und der wert, der im Diagramm dargestellt werden soll, ist der Mittelwert der Helligkeit über alle Pixel im ROI. Und das muss berechnen. Bitte können sie mir vielleicht helfen? Ich arbeite mit labview 2020.

Im Anhang finden sie mein Vi.

beste danke
London
Hallo London,

erst einmal herzlich willkommen.

(04.01.2021 21:15 )London schrieb: [ -> ]hallo. ich hoffe bitte dass , sie mir helfen können.

Ganz sicher können wir helfen, auch wenn es nur sehr selten eine fertige Lösung gibt.

Vergesse den "Vision Assistant". Du hast einen ROI in beliebiger Form. Ich glaube nicht, dass sich die Aufgabe
mit dem "Vision Assistant" lösen lässt.
An die Mitleser hier im Forum: Ich lasse mich aber gerne eines besseren belehren Blush


Du extrahierst eine Farbebene aus deinem Bild. Ich nehme deshalb an, dass du ein farbiges Bild von der Kamera bekommst.

Ein Bild ist nichts anderes als ein 2-dimensionales Array von Zahlen. Im einfachsten Fall sind es Zahlen im Format Unsigned Integer mit 8-Bit (U8). Dein Bild nach "IMAQ ExtractSingleColorPlane" ist also nichts anderes als ein 2-dimensionales Array mit dem Datentyp U8.

1. Du musst herausfinden, welche Pixel innerhalb des ROI liegen.
2. Wenn du diese kennst, musst du die Summe dieser Pixel berechnen und durch die Anzahl der Pixel im ROI teilen.

Zu 1.:
Sehe dir einmal die VIs "IMAQ ROIToMask" und "IMAQ ImageToArray" an. Daraus bekommst du ein Bild bei dem alle Pixel innerhalb des ROI größer als Null sind.

Zu 2.:
Sehe dir das VI "IMAQ Mask" an. Du brauchst auch hier das VI "IMAQ ImageToArray".

Fast hätte ich den dritten Punkt vergessen:

3. Du hast noch viel zu tun Construction
hallo,

vielen Dank erstmal. ich habe ganz anders gemacht, und dazu habe ich bitte eine frage.
Ich habe mit dem Vision Assistenten mal die Funktionalität zusammengeklickt.
Im angehängten vi kann man den Mittelwert einer Linie in einem Chart darstellen.

Die Linie kann man mit dem ROI-Tool zeichnen. (Kreisumfänge oder andere Formen kann man auch zeichnen)
aber der Mittelwert wird immer entlang der Linie errechnet.

Den Mittelwert über eine Fläche kann das VI (und auch der Assistent) nicht errechnen.

meine Frage ist: wie kann man bitte den Mittelwert über eine Fläche errechnen ?

Grüß
London
[attachment=61577]
Hallo London,

ich hatte das Thema etwas aus den Augen verloren.

Das Histogramm VI (IMAQ Histogram) liefert unter anderem auch den Mittelwert.

Maske aus dem ROI erstellen (IMAQ ROIToMask) und dann dein Bild und die Maske in "IMAQ Histogram" stopfen. Da bekommst du einen Cluster mit etlichen Messwerten heraus. Dort ist auch der Mittelwert dabei.

Den Vision Assistant verwende ich viel zu wenig, weil vieles oft gar nicht geht, umständlich oder nicht performant ist. Ich würde aber dennoch stark vermuten, dass der das auch machen kann.
Hallo Martin,

ja genau mit Histogramm VI (IMAQ Histogramm) habe ich probiert, aber kriege ich was als Fehler. ich bekomme keine Messwerten. vielleicht habe ich was falsch gemacht. Mein VI am Anhang bitte kannst du reinschauen? Wenn es möglich ist, bitte auch korrigiert.

ist es auch möglich, wenn ich mit dem Vision Assistent den Histogramm nutze?

Elodie
Grüße[attachment=61579]
Hallo London,

(ich habe das Thema nach LabVIEW Vision verschoben).
Ähm, dein VI sollte etwas aufgeräumt werden Angry
Was bekommst du denn für eine Fehlermeldung?

Ja, auch mit IMAQ ROIProfile oder IMAQ Histograph geht das. Jetzt hast du wahrscheinlich alle passenden VIs gefunden.

Wenn du jetzt schreibst, dass du nichts heraus bekommst, dann vermute ich mal, dass deine Bilder nicht passen.

Eine mögliche Ursache ist, dass du ein Farbbild verwendest. Wenn das so ist, dann wird dein VI nicht funktionieren.
In dem Fall musst du zuerst ein Grayscale Image daraus machen (z.B. IMAQ ExtractSingleColorPlane).

[attachment=61580]

[attachment=61582]
Hallo Martin,

alles hat gut geklappt. Vielen Dank.

Aber ich habe noch eine Frage. Kannst du mir bitte zeigen, wie der Mittelwert in einer Datei abgespeichert wird. (einfügen auf das VI).
Die Datei soll eine csv Datei sein. In der ersten Spalte kommt die Zeit und in den weiteren Spalten die Werte des ROI: Mittelwert, etc.

Danke im Voraus.

London
Grüssen
In der File I/O Palette findest du das VI "Write Delimited Spreadsheet.vi".

Wenn du, wie ich vermute, nacheinander Messwerte in die Datei schreiben willst, dann empfehle ich dir einen Blick in diese VIs zu werfen. Wenn du nur dieses VI verwendest, dann wird die Datei ständig geöffnet und wieder geschlossen und das ist einfach unnötig.
Hallo Martin,

"Write Delimited Spreadsheet.vi", habe ich gefunden.

Messwerte will ich nacheinander in die Datei "csv" schreiben, ich habe noch was in diese VI geändert.

Im Anhang finden sie mein VI, Bitte können sie mir sagen, ob ich in Richtige Richtung bin?
Kannst du mir auch bitte zeigen, wie ich weiter gehen kann?

Grüße
London
Hallo London,

guck doch mal im "Example Finder" (Menü "Help","Find Examples...") und suche dort nach dem Stichwort "spreadsheet".

Dort gibt es das Beispiel "Tab-delemited Data.lvproj" mit dem VI "Write Tab-Delemited File.vi".

Das macht schon recht genau das, was du jetzt suchst. Da gibt es nur vier Unterschiede zu dem, was du machen willst:
- es wird als eine For Schleife verwendete, du hast eine While Schleife
- die Messwerte liegen als Array vor, du hast die Messwerte in einen Cluster
- die Zeit ist nur Sekundengenau, du solltest die Zeit jedoch mit Millisekunden schreiben
- es wird als Trennzeichen ein Tab verwendet, du willst ein Komma (siehe Anmerkung)

Es wird zwar häufig ein Komma als Trennzeichen verwendet, ich rate dir aber davon dringend ab. Verwendet ein Tab Zeichen
oder auch ein Semikolon. Das Komma wird (hierzulande) bereits als Dezimaltrennzeichen verwendet. Wenn du z.B. ein
Semikolon verwendest, dann sieht eine Zeile so aus:

10:25:20,123;125,1;150,3;90,2

Wenn du ein Komma verwendest, dann kannst du Dezimaltrennzeichen und Spaltentrennzeichen nicht mehr unterscheiden und
du müsstest die einzelnen Daten innerhalb von Anführungsstrichen in die Datei schreiben. Also dann z.B.

"10:25:20,123","125,1","150,3","90,2"

Du machst dir ohne Not das Leben nur schwerer als es ist.
Seiten: 1 2 3
Referenz-URLs