LabVIEWForum.de
lokale Maxima - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Module (/Forum-LabVIEW-Module)
+---- Forum: LabVIEW Vision (/Forum-LabVIEW-Vision)
+---- Thema: lokale Maxima (/Thread-lokale-Maxima)

Seiten: 1 2


lokale Maxima - Mietzekatze - 26.03.2012 14:01

Hallo.
Gibt es ein VI das mir aus einem Bild (Schwarz weiß) lokale Maxima der weißen Linien raussucht?
Habe es leider noch nicht entdeckt.


RE: lokale Maxima - b.p - 26.03.2012 14:11

Kannst du mal ein Probebild oder so was hochladen?
Es gibt einige vis, die so was in die Richtung machen, aber dazu müsste ich wissen, was deine ominösen weißen Linien, etc sind..

So kann ich dir nur sagen: Linien als Array extrahieren, dann Max von Array (wenns sein muss interpolieren).
Gruß,
Birgit


RE: lokale Maxima - Mietzekatze - 28.03.2012 08:10

Hallo Birgit,
es ist wichtig das keine globalen sondern lokale Maxima gefunden werden.
Ein Beispiel könnte so aussehen:(Anhang)


RE: lokale Maxima - GerdW - 28.03.2012 08:36

Hallo Mietze,

mal ein einfacher Lösungsansatz: Blurring/Weichzeichnen und Umwandlung nach Schwarz/Weiß per Schwellwert. Zwei simple Verfahren aus der Bildbearbeitung...


RE: lokale Maxima - Mietzekatze - 28.03.2012 08:51

Das würde aber dan wieder nur globale Maxima erfassen, brauche aber ein verfahren das die lokalen sucht, mache Punkte sind interessant auch wenn sie nicht so deutlich sind, nur weil sie umgeben von schwarzen Pixeln sind. Im Gegensatz sind einige sehr helle Punkte uninteressant, da neben diesesn noch viel Hellere liegen.

LG und Thx Smile


RE: lokale Maxima - GerdW - 28.03.2012 08:56

Hallo Mietze,

Zitat:mache Punkte sind interessant auch wenn sie nicht so deutlich sind
Dann solltest du "lokale Maxima" besser definieren!

Nach dem von mir genannten Ablauf erhälst du ein Bild mit mehreren weißen "Flecken". Du darfst jetzt noch die Position dieser "Flecken" bestimmen - ob die Größe der Flecken für dich interessant ist, kann ich nicht entscheiden. Ob/wieviele "kleinere" lokale Maxima in der Auswertung entscheiden, kannst du über den Weichzeichner-Radius und den "Grau nach BW"-Schwellwert selbst steuern!


RE: lokale Maxima - Mietzekatze - 28.03.2012 09:03

Das Problem besteht einfach darin, dass es nicht einen Schwellwert gibt, welcher für das gesamte Bild entscheident ist, sondern, dieser Schwellwert eben eher der Anstieg zu den Nachbarpixeln darstellen soll.

Im Moment versuche ich das Bild in ein Array [Farbwert, x-Wert, y Wert] zu packen und dann jedes Pixel auf seine "Nachbaren" hin zuuntersuchen.


Vlt ist es auch besser das Bild in eine Matrix zu konvertieren Anzahl der Pixel ist gleich Anzahl der Zeilen und Spalten.
An der Stelle steht, dann halt der Farbwert.
Gibt es dafür schon eine Funktion?

LG


RE: lokale Maxima - Hook1986 - 28.03.2012 11:37

Hallo Mietze,

um aus einem Image ein Array zu bekommen gibt es die Funktion "Imaq Image to Array". Die findest du ganz einfach unter "Vision and Motion" -> "Vision Utilities" -> "Pixel Manipulation".

Dann bekommst du aus deinem Imaq Image eine Array, welches dir die Grauwerte von jedem Pixel beinhaltet.

Was sollst du denn eigentlich genau machen mit deinem Programm? Wie groß sollen denn deine lokalen Stellen sein? Könnte auch ein "Maximumfilter" (siehe Bildverarbeitung) hilfreich sein?

MfG Carsten


RE: lokale Maxima - Mietzekatze - 30.03.2012 08:58

Danke für den Tip, ImagetoArray funktionierte nach ein paar Kompatibilitätsproblemen jetzt und somit kann ich ja ganz einfach in eine Matrix umwandeln.
Was meinst du mit Maximum filter, wo finde ich den in LV?
LG und Thx


RE: lokale Maxima - rolfk - 03.04.2012 08:04

(28.03.2012 09:03 )Mietzekatze schrieb:  Das Problem besteht einfach darin, dass es nicht einen Schwellwert gibt, welcher für das gesamte Bild entscheident ist, sondern, dieser Schwellwert eben eher der Anstieg zu den Nachbarpixeln darstellen soll.

Im Moment versuche ich das Bild in ein Array [Farbwert, x-Wert, y Wert] zu packen und dann jedes Pixel auf seine "Nachbaren" hin zuuntersuchen.


Vlt ist es auch besser das Bild in eine Matrix zu konvertieren Anzahl der Pixel ist gleich Anzahl der Zeilen und Spalten.
An der Stelle steht, dann halt der Farbwert.
Gibt es dafür schon eine Funktion?

LG

Klingt mir irgendwie danach dass Du eigentlich die Ableitung der Intensität des Bildes haben willst. Das ist bei nicht verrauschten Bildern wohl die deutlichste Form um lokale Bildänderungen sichtbar zu machen. Also nicht lokale Maxima im Bild aber lokale Maxima der Ableitung des Bildes.

Bei Rauschen müsste man allenfalls den Pixelbereich um die Ableitung zu berechnen grösser machen.