LabVIEWForum.de
Anzahl der Pixel von Partikeln in einem Grauwertbild bestimmen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Module (/Forum-LabVIEW-Module)
+---- Forum: LabVIEW Vision (/Forum-LabVIEW-Vision)
+---- Thema: Anzahl der Pixel von Partikeln in einem Grauwertbild bestimmen (/Thread-Anzahl-der-Pixel-von-Partikeln-in-einem-Grauwertbild-bestimmen)



Anzahl der Pixel von Partikeln in einem Grauwertbild bestimmen - Peter Schulze - 21.01.2010 07:09

Hallo zusammen,
ich habe zur Zeit ein ziehmliches Problem. Ich möchte aus einen Grauwertbild (siehe mitgeschicktes JPG), grün markierter Bereich, die Gesamtanzahl der Pixel der einzelnen dunklen Stellen ermitteln. Ich habe schon viel herumprobiert, kann aber keine zufriedenstellende Lösung finden. Ein großes Problem ist der Helligkeitsabfall der runden Fläche zum Rand hin. Dadurch kann es passieren, dass eine dunkle Stelle in der Mitte des Bildes den gleichen Grauwert hat wie die Hintergrundfläche am Rand. Aus diesem Grund ist es für mich nicht möglich mit einer Threshold für das gesamte Bild zu arbeiten. Leider kenne ich zur Zeit aber keine andere Möglichkeit.
In einem Bildbearbeitungsprogramm habe ich gesehen, dass es möglich ist den Hintergrund aufzuhellen (d.h. Hintergrund hat su gut wie die gleiche Helligkeit) und dann das Bild auszuwerten. Welche Möglichkeiten habe ich in LabVIEW?

Habt Ihr einige Ideen oder eventuell sogar schon Lösungen?
Für Eure Hilfe wäre ich sehr dankbar.

Gruß Peter

PS: Ich arbeite mit LV8.6 oder LV2009

[attachment=23783]


Anzahl der Pixel von Partikeln in einem Grauwertbild bestimmen - echtzeit - 21.01.2010 13:15

Für Bildverarbeitung würde ich generell andere Programme als LabVIEW verwenden. Es gibt super opensource-software, die wirklich professionell arbeitet. Wie wäre es mit imageJ ??? Das ist in Java geschrieben, plattformunabhängig und dafür gibt es unzählige "plugins". In der Forschung ist das weitverbreitet und fast Standard.
Du findest sicher schon ein plugin oder makro, dass genau deine Aufgabe erledigt.....

riorio



edit:
p.s.: wenn du das wirklich unbedingt in LabVIEW machen möchtest: Schreibe dir einen "Algorithmus", der dass Bild als Matrix/Array einliest, und anfängt die Grauwerte der Pixel einzulesen. Wenn mehr als beispielsweise mehr als 100 "Pixelnachbarn" über einer bestimmten Grauwertschwelle liegen (somit handelt es sich um den dunklen Hintergrund), dann wird der gesamte "dunkle" Bereich auf Grauwert "0" gesetzt.... Dann hast du einen "weißen" Hintergrund.
Wie gesagt, bei imageJ reicht vielleicht nur ein "click" und du musst nichts extra programmieren..

Offtopic2
edit2: also nix gegen LabVIEW Wink Das Programm ist "toll" zum steuern, regeln, messen (da es für fast jedes Gerät LabVIEW-Treiber gibt...)
Meinentwegen auch zum Bilder aufnehmen.

==> aber für die Weiterverarbeitung von Messdaten sind Programme wie Origin oder Matlab/octave besser geeignet...und für Bildverarbeitung eben imageJ oder IDL


Anzahl der Pixel von Partikeln in einem Grauwertbild bestimmen - Peter Schulze - 21.01.2010 15:33

Ich habe diese open Source Software schon gefunden und es hat recht gut geklappt.
Trotzdem Danke für die Antwort.


Anzahl der Pixel von Partikeln in einem Grauwertbild bestimmen - Y-P - 21.01.2010 15:37

Die Frage ist nur, ob man sich da überall einarbeiten möchte. Ich mache hier so gut wie alles mit LabVIEW, auch Dinge, die sonst wenige mit LabVIEW machen würden, wie z.B. Reports erstellen mit Werten aus Datenbanken,... also ohne ein einziges Gerät. Und auch das geht problemlos. Man braucht nur die entsprechenden Toolkits.

Gruß Markus

' schrieb:sind Programme wie Origin oder Matlab/octave besser geeignet...und für Bildverarbeitung eben imageJ oder IDL



Anzahl der Pixel von Partikeln in einem Grauwertbild bestimmen - unicorn - 26.01.2010 21:45

Die Bildverarbeitung kann auch sehr konfortabel mit LabVIEW erfolgen. Dazu benötigt man das IMAQ Vision Paket. Dort gibt es auch ein VI, das einen lokalen Threshold setzt und die dunklen Flecken markieren könnte. Dazu kommt noch das komplette Programm an Bildbearbeitungsfunktionen.

Ich weiss jetzt nicht genau, was für ein Objekt abgebildet. Für mich sieht es so aus, als könnte man eine Ausleuchtungsverteilung bestimmen und das Bild durch diese Verteilung teilen. Dann verschwindet der Randabfall und man kann mit einer einfachen festen Schwelle die dunklen Flecken bestimmen.

ImageJ kann auch individuell programmiert werden (als Macro oder direkt in Java) - ist aber halt kein LabVIEW mehr. Spätestens wenn man einen Messplatz zu automatisieren hat wird es mit Java und ImageJ schwierig. Muss ein Bild nur einmal analysiert werden, lohnt es sich sicherlich nicht etwas zu programmieren.

Neben ImageJ gibt es unter anderen die OpenCV Bibliothek, mit der man die Bildverarbeitung programmieren und in LabVIEW einbinden könnte.


Anzahl der Pixel von Partikeln in einem Grauwertbild bestimmen - wolfmichael - 01.08.2010 21:45

...gehört vielleicht nicht ganz dazu, erinnert mich aber ein Problem, bei dem ich die drei Dinge - LabVIEW, ImageJ und Automatisierung - unter einen Hut bekommen musste: mit LabVIEW ein Textmakro der zu erledigenden Aufgaben erstellen und dann unter LabVIEW mit Systembefehl ImageJ mit dem erstellten Textmakro starten und die Aufgabe erledigen lassen...

Also wenn mal Aufgaben nur mit ImageJ zu lösen sind, kann das als Umweg zur Automatisierung helfen...

VG Micha