LabVIEWForum.de
Radius eines Kreises 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: Radius eines Kreises bestimmen (/Thread-Radius-eines-Kreises-bestimmen)



Radius eines Kreises bestimmen - Johannes T. - 14.04.2010 19:47

Hallo zusammen,

ich schreibe im Moment meine Abschlussarbeit und wollte dafür Bilder mit LabVIEW bearbeiten um sie dann später auswerten zu können.
Leider bin ich noch ganz neu bei LabVIEW und hab auch schon mein erstes Problem.
Um kurz nachvollziehen zu können worum es sich handelt erkläre ich kurz das Thema.
Ich scanne Filme ein, die je nach Bestrahlung einen unterschiedlichen Schwärzungsgrad haben. Dieser Schwärzungsgrad ist ungefähr kreisförmig.
Unter anderem will ich, dass mir später der Radius dieses Kreises angezeigt wird.
Damit LabVIEW die Grenzen des Kreises besser erkennt (damit die Kante deutlicher wird und nicht ineinander übergehen) wird eine Schwelle eingebaut und alle Werte die unter der Schwelle liegen, werden 0. Die Werte im Inneren des Kreises bleiben unverändert.
Allerdings weiss ich nicht wie ich mir jetzt den Radius des Kreises anzeigen lassen kann.
(Das Vision Tool ist vorhanden)

Kann mir bei diesem Problem jemand helfen bzw. ein Tipp geben wie ich weiterverfahren muss?
Vielen Dank!
Gruß Johannes


Radius eines Kreises bestimmen - Johannes T. - 15.04.2010 13:24

Um mein Problem zu verdeutlichen habe ich ein Teil meines Programmes eingefüft.
Ich dachte eigentlich, dass mir der Radius damit angezeigt werden sollte. Aber irgendwo muss ich ein Fehler haben oder etwas falsch verstehen, denn der Radius wird immer mit 0 angezeigt.
Oder ist es vielleicht gar nicht möglich, da ich keinen optimalen Kreis habe (ist an den Rändern stark verpixelt und hat keine exakten Kanten).

Wenn jemand eine Idee hat, bzw meinen Fehler entdeckt hat, freu ich mich über Hilfe!
Gruß Johannes

LV.8.0[attachment=25752]


Radius eines Kreises bestimmen - gottfried - 15.04.2010 18:48

Ich habe mir Dein Beispiel nicht angesehen aber ich weiss die Kreisbestimmung geht ausgezeichnet. Der Radius Null kommt wenn LV keinen Kreis findet.


Radius eines Kreises bestimmen - Peter04 - 15.04.2010 20:35

Hallo

Ich habe mir Dein Beispiel gerade angesehen. Da kommt überhaupt nicht 0 heraus, sondern 31,52. So steht es im Cluster "Best Circle 2". DA muß Du den Wert noch rausholen (unbundle). Dein dbl "µm/pixel" ist ja gar nicht verdrahtet. Dann steht da auch 0 drin.

Gruß Peter


Radius eines Kreises bestimmen - Johannes T. - 16.04.2010 08:39

Erst einmal danke für eure Antworten.
Die 30,52 hat das Programm nicht selbst angegeben. Die Zahlen hat er beim Kopieren aus meinem vollständigen Programm übernommen. Und da hab ich die Zahl von Hand eingetippt, um zu überprüfen ob er überhaupt etwas macht. Wenn ich das VI laufen lasse ändert er die Zahlen nicht. Wenn er also keinen Kreis finden würde müsste er ja immer 0 angeben. Er behält aber immer die Zahlen von vorher bei und ändert nichts.
Das dbl, das nicht verdrahtet ist, ist nur durchs kopieren mit reingerutscht. Sorry.

Ist es auch möglich, dass ich im angezeigten Bild von Hand aus mit einem anderen Tool einen Kreis einzeichne und er mir danach den Radius angibt. Ich kann mir vorstellen, dass er so die Kanten nicht findet und daher nicht weiß was er machen soll. Welches Tool bräuchte ich dafür? Bzw. wie kann ich etwas in ein Bild mit LabVÌEW einzeichnen.

Danke


Radius eines Kreises bestimmen - Oleg - 16.04.2010 12:40

Hallo.
Ich habe keine fertige Lösung, aber ich habe eine Idee. Vielleicht kann sie dir weiterhelfen.

Theoretisch wenn du einen idealen Kreis hättest, der erster Punkt des Kreises würde erstem "1" in deinem 2D Array entsprechen und
der letzter Punkt dem letzten. Du muss jetzt die indices von den ersten und den letzten "1" in deinem 2D Array finden. Dann nimmst du
nur die zahlen die den Reihen entsprechen (z.B erster Punkt (25, 40) letzter Punkt (50, 40): 50-25=25). Der Durchmesser würde
dann 25 gleich. Da du die Kreisen nicht exakt sind, wird der Radius auch nicht exakt.
Jetzt wie du die 1 und letzten Punkten finden kannst. Es gibt eine Funktion Search 1D Array die musst du allerdings für dein 2DArray
anhand For oder While schleifen nützlich machen. Oder direkt bei der Erzeugung dieses 2D Arrays die "1" verfolgen.
Ich hoffe dass es dir weiter hilft.

Gruß
Oleg


Radius eines Kreises bestimmen - Johannes T. - 16.04.2010 21:49

Hey Oleg,
deine Idee ist super. Allerdings kann ich sie bei mir leider nicht anwenden, da ich auch außerhalb des Kreises Pixel habe, die den Schwellenwert übertreten.
Ich hab aber auch eine Lösung gefunden. Ich werde sie am Montag hochladen, da ich hier nicht das Vision-Tool habe.

Merci!

Gruß
Johannes