Liebes LabVIEW-Forum!
Gibt es für folgende Problematik eine Lösung in LabVIEW? Wenn ja, wie könnte diese aussehen und was für Pakete brauch ich dafür?
In Kürze werde ich z-Stacks von Strukturen generieren, die als Multi-Tiff vorliegen werden. Ein Stack besteht aus 2D-Bildern, die übereinander gelegt ein 3D-Bild ergeben. Dabei werden Stacks entstehen, die dieselbe Struktur enthalten, nur anders orientiert. Ich möchte diese Stacks einlesen und in jedem der beiden Stacks 3 Punkte auf der betrachteten Struktur markieren, so dass ich im Anschluss weiß, um welche Winkel ich den 2. Stack drehen und um welche Strecken ich ihn verschieben muss, um die Strukturen in beiden Stacks dazu zu bringen, übereinander zu liegen.
Mir steht LabVIEW 8.6 mit "Vision" zur Verfügung.
Viele Grüße, ich danke Euch!
. Das ist ein sehr spezielles Problem und ich kapiere ehrlich gesagt nicht genau, was Du möchtest.
. .
Ich weiß nicht mal, ob LabVIEW mit Vision dafür geeignet ist. Von so einer Anwendung habe ich bisher in dem Zusammenhang jedenfalls noch nichts gehört.
Gruß Markus
Kannst Du ein praktsiches Beispiel schildern?
Ich habe zwar (noch) keine Antwort auf die Problemstellung, aber ich glaube zumindest die Frage verstanden zu haben!
Es geht darum, zwei Bilder mit gleichem/ähnlichem Objekt aneinander auszurichten. Das Objekt hat eine bekannte Form aber unbekannte Ausrichtung, sprich Drehwinkel in der Ebene. Ziel ist es nun in beiden Bildern die Lage des Objektes anhand von drei Stützpunkten festzustellen und eines der Bilder entsprechend zu drehen um es mit dem anderen Bild überlagern zu können.
Edit: Ich habe mal zur Veranschaulichung zwei simple Beispielbilder erstellt, wobei die roten Punkte die Stützpunkte sein könnten anhand derer man die Drehwinkeldifferenz zwischen den Bildern bestimmen könnte. Hier sind es 180° Drehlage und einige Pixel in x- und y-Richtung.
[
attachment=24145][
attachment=24146]
Hallo EIS-Tobias,
ja, das ist zumindest Teil des Problems. Es ist noch etwas allgemeiner, da ich nicht Bilder überlagern will, sondern Körper. Wenn ich 2D Bilder hätte, bräuchte ich für die Ausrichtung auch nicht 3, sondern nur 2 Punkte für die Markierung.
Ich habe also einen ganzen Stapel ("Stack") von Bildern, die dadurch entstehen, dass ich den Körper in z-Richtung abscanne. Jedes xy-Bild enthält also eine Schicht des Körpers.
Mittlerweile hab ich aber ein kleines Programm gemalt, was eigentlich nur aus einem Formelknoten besteht. Es berechnet aus den 3 Koordinaten aller 3 Markierungspunkte den Normalenvektor beider Flächen und daraus den Winkel in allen 3 Richtungen, um die der zweite Körper rotiert werden muss. Dieses Problem ist also prinzipiell gelöst.
Aaaaaber:
Um die Sache ein wenig zu vereinfachen, wäre es jetzt nett, wenn man die 3 Koordinaten aller 3 Punkte beider Flächen (das macht insgesamt 18 Zahlen, die man per Hand eintippen müsste!!), einlesen könnte.
Die Koordinaten liefert ImageJ. Kann man ImageJ und LabVIEW irgendwie verheiraten, so dass die miteinander reden? ;-)
Danke nochmal und viele Grüße,
Mensch
Na, verheiraten wohl nicht, aber dazu bringen, dass sie sich unterhalten evtl.
Zumindest ist LV ein guter Zuhörer.
Hat ImageJ denn irgendeine Ausgabemöglichkeit? Eine Datenschnittstelle oder sowas? Oder im Zweifelsfall, falls es nicht sznchron passieren muss die möglichkeit die Daten in einer Datei zu speichern? Dann musst du "lediglich" LV zeigen woher die Daten kommen und welches Format die haben und schon bist du einen großen Schritt weiter.
Noch besser wäre es eigentlich, wenn man die Bildstapel (tiff) direkt in LabVIEW reinladen könnte und dort per Mausklick auf die entsprechenden Markierungspunkte deren 3D-Koordinaten bekommt und dann durch Formelknoten jagen kann. Dann würde man sich den Umweg über ImageJ sparen...
Geht das?
' schrieb:Mittlerweile hab ich aber ein kleines Programm gemalt, was eigentlich nur aus einem Formelknoten besteht.