04.01.2021, 21:15
Beitrag #1
|
|
|
05.01.2021, 05:16
Beitrag #2
|
Martin.Henz
LVF-Team
Beiträge: 426
Registriert seit: Jan 2005
2.5.1 bis 20
1992
kA
74363
Deutschland
|
RE: Mittelwert der Helligkeit über alle Pixel im ROI
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
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
|
|
|
25.01.2021, 18:42
Beitrag #3
|
London
LVF-Grünschnabel
Beiträge: 13
Registriert seit: Aug 2020
2019
-
DE_EN
|
RE: Mittelwert der Helligkeit über alle Pixel im ROI
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
Vision Aquisition.vi (Größe: 154,06 KB / Downloads: 247)
|
|
|
26.01.2021, 00:12
Beitrag #4
|
Martin.Henz
LVF-Team
Beiträge: 426
Registriert seit: Jan 2005
2.5.1 bis 20
1992
kA
74363
Deutschland
|
RE: Mittelwert der Helligkeit über alle Pixel im ROI
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.
|
|
|
26.01.2021, 17:53
Beitrag #5
|
London
LVF-Grünschnabel
Beiträge: 13
Registriert seit: Aug 2020
2019
-
DE_EN
|
RE: Mittelwert der Helligkeit über alle Pixel im ROI
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
Aufgabe Block Diagramm Mittelwert.vi (Größe: 97,74 KB / Downloads: 229)
|
|
|
26.01.2021, 20:20
Beitrag #6
|
Martin.Henz
LVF-Team
Beiträge: 426
Registriert seit: Jan 2005
2.5.1 bis 20
1992
kA
74363
Deutschland
|
RE: Mittelwert der Helligkeit über alle Pixel im ROI
Hallo London,
(ich habe das Thema nach LabVIEW Vision verschoben).
Ähm, dein VI sollte etwas aufgeräumt werden
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).
|
|
|
28.01.2021, 08:19
Beitrag #7
|
London
LVF-Grünschnabel
Beiträge: 13
Registriert seit: Aug 2020
2019
-
DE_EN
|
RE: Mittelwert der Helligkeit über alle Pixel im ROI
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
|
|
|
28.01.2021, 11:03
Beitrag #8
|
Martin.Henz
LVF-Team
Beiträge: 426
Registriert seit: Jan 2005
2.5.1 bis 20
1992
kA
74363
Deutschland
|
RE: Mittelwert der Helligkeit über alle Pixel im ROI
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.
|
|
|
30.01.2021, 12:21
Beitrag #9
|
|
|
30.01.2021, 13:59
|
Martin.Henz
LVF-Team
Beiträge: 426
Registriert seit: Jan 2005
2.5.1 bis 20
1992
kA
74363
Deutschland
|
RE: Mittelwert der Helligkeit über alle Pixel im ROI
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.
|
|
|
| |