Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Java 3D-Bilder
- Ersteller KadOros
- Erstellt am
Danke das du dir soviel mehr gemacht hast Hancock!
Leider will der Projektleiter das ich das unbedingt über die Winkel Lösse ...
Da stellt sich mit nur die frage wie ich das Phi ( Drehung der Bilder ) in den sinussatz bekomme
Leider will der Projektleiter das ich das unbedingt über die Winkel Lösse ...
Da stellt sich mit nur die frage wie ich das Phi ( Drehung der Bilder ) in den sinussatz bekomme
Zuletzt bearbeitet:
Gar nicht... 
Das Phi ist nur das, um was du nachher die Koordinaten drehen musst.
Siehe http://en.wikipedia.org/wiki/Rotation_matrix
Das Phi ist nur das, um was du nachher die Koordinaten drehen musst.
Siehe http://en.wikipedia.org/wiki/Rotation_matrix
So ich hab's geschafft die z Werte zu berechnen^^ mein nächstes Problem ist jetzt daraus die punktwolke zu erstellen, kann mit jemand da helfen ?
Bzw. ich hab 3 Felder jeweils für die x y in z Werte , ist das Schon die punktwolke? Wenn ja muss i h die ja jeztzt zu Polygonen verbinden, auch das werr ein problem was i h hätte
Bzw. ich hab 3 Felder jeweils für die x y in z Werte , ist das Schon die punktwolke? Wenn ja muss i h die ja jeztzt zu Polygonen verbinden, auch das werr ein problem was i h hätte
Zuletzt bearbeitet:
kuddlmuddl
Commander
- Registriert
- Mai 2010
- Beiträge
- 2.704
lass doch von java an jedem punkt eine kleine kugel oder einen kleinen würfel zeigen
für den anfang ist das auf jeden fall genug.
hierbei mein tipp: teste unbedingt vorher einen einfacheren fall als die kompletten daten zB mit einfachen daten wie "3 punkte die übereinander liegen"
für den anfang ist das auf jeden fall genug.
hierbei mein tipp: teste unbedingt vorher einen einfacheren fall als die kompletten daten zB mit einfachen daten wie "3 punkte die übereinander liegen"
MR34L
Cadet 4th Year
- Registriert
- Apr. 2008
- Beiträge
- 107
Wäre nett, wenn du paar Gedanken posten könntest, wie du es denn mit dem Sinusansatz nun geschafft hast. Wenn ich den Thread schon bis hierhin gelesen hab 
Vll kannst du aus der Punktwolke die konvexe Hülle berechnen, ich denke dafür existieren sicher einige Algorithmen oder Bibliotheken im Inet. Viel Erfolg weiterhin!
Vll kannst du aus der Punktwolke die konvexe Hülle berechnen, ich denke dafür existieren sicher einige Algorithmen oder Bibliotheken im Inet. Viel Erfolg weiterhin!
Jo hier mal die kurform:
A = x/sin(laserwinkel) x: "X-Wert" des zu berechnenden Punktes
c = m-A m:Mittelpunkt des Objekts
z = c*sin(phi) phi: "drehwinkel" des Objekts (1-360)
Ich hab übrigens mal dreiecke um jeden Punkt der Punktwolke gezeichnet um die Punkte zu kontrollieren , hab mal ein Bild davon in den Anhang gepackt.
Jetzt brauch ich nurnoch einen Algorithmus um die Punkte mit einander zu verbinden.
A = x/sin(laserwinkel) x: "X-Wert" des zu berechnenden Punktes
c = m-A m:Mittelpunkt des Objekts
z = c*sin(phi) phi: "drehwinkel" des Objekts (1-360)
Ich hab übrigens mal dreiecke um jeden Punkt der Punktwolke gezeichnet um die Punkte zu kontrollieren , hab mal ein Bild davon in den Anhang gepackt.
Jetzt brauch ich nurnoch einen Algorithmus um die Punkte mit einander zu verbinden.
Anhänge
kuddlmuddl
Commander
- Registriert
- Mai 2010
- Beiträge
- 2.704
ui glückwunsch erstmal!
ich hätte ehrlich gesagt erwartet dass man das objekt kaum erkennen kann..
wieso isses 90° gedreht?
zum punkte verbinden is sicher konvexe hülle gut
du könntest auch ein voriges "bereinigen" leicht umsetzen was aber relativ viel laufzeit hat. das muss ja aber nur einmal stattfinden
etwas der form
"lösche alle punkte die keinen dichten nachbarn haben" so verschwinden erstmal diese kleinen "fetzen"
hier wäre mein tipp "dicht" nicht mit einer konstanten vorzugeben in der form "alle punkte die nicht mindestens mit abstand 3 einen nachbar haben: löschen" sondern stattdessen statistisch da ranzugehen.
dh du berechnest für die gesamte Punktewolke einmal wie groß die kleinsten abstände zu nachbarn jedes punktes sind und bestimmst für diese menge von zahlen zB mittelwert und standardabweichung. alle punkte die dann zB mehr als 2 standardabweichungen nach oben abweichen werden gelöscht.
der vorteil an so einem statistischen verfahren ist, dass es objekt und auflösungsunabhängig ist. allerdings kann man für einen ersten bereinigungsversuch natürlich auch mit einer konstanten anfangen und die statistische analyse später hinzufügen.
sowas hat schlimme laufzeit aber muss ja nur einmal "offline" erfolgen bevor du die daten überhaupt darstellst und nicht "online" bei jeder bildberechnung.
solche bereinigungsverfahren wie glättungen haben natürlich immer den nachteil, dass sie evtl tatsächlich vorhandene details des objekts löschen - aber ne konvexe hülle sieht bei so kleinen ausreißern sicher ziemlich schlimm aus
ich hätte ehrlich gesagt erwartet dass man das objekt kaum erkennen kann..
wieso isses 90° gedreht?
zum punkte verbinden is sicher konvexe hülle gut
du könntest auch ein voriges "bereinigen" leicht umsetzen was aber relativ viel laufzeit hat. das muss ja aber nur einmal stattfinden
etwas der form
"lösche alle punkte die keinen dichten nachbarn haben" so verschwinden erstmal diese kleinen "fetzen"
hier wäre mein tipp "dicht" nicht mit einer konstanten vorzugeben in der form "alle punkte die nicht mindestens mit abstand 3 einen nachbar haben: löschen" sondern stattdessen statistisch da ranzugehen.
dh du berechnest für die gesamte Punktewolke einmal wie groß die kleinsten abstände zu nachbarn jedes punktes sind und bestimmst für diese menge von zahlen zB mittelwert und standardabweichung. alle punkte die dann zB mehr als 2 standardabweichungen nach oben abweichen werden gelöscht.
der vorteil an so einem statistischen verfahren ist, dass es objekt und auflösungsunabhängig ist. allerdings kann man für einen ersten bereinigungsversuch natürlich auch mit einer konstanten anfangen und die statistische analyse später hinzufügen.
sowas hat schlimme laufzeit aber muss ja nur einmal "offline" erfolgen bevor du die daten überhaupt darstellst und nicht "online" bei jeder bildberechnung.
solche bereinigungsverfahren wie glättungen haben natürlich immer den nachteil, dass sie evtl tatsächlich vorhandene details des objekts löschen - aber ne konvexe hülle sieht bei so kleinen ausreißern sicher ziemlich schlimm aus
Zuletzt bearbeitet:
Ich würde versuchen, schon am Ausgangsmaterial was zu bereinigen.
Die Laserlinie ist ja ziemlich dick. Wenn man die durch Bildfilter glätten und schmaler machen kann, ist das schon ein guter Anfang. Die Ränder sind dann nicht mehr so ausgefranst.
Mit einem Kontrastfilter hebst du zB die Laserlinie vor und blendest die anderen Bereiche des Bildes fast aus. Hier mal ein Beispiel mit einem deiner Bilder vom Anfang des Threads:
Original
Kontrastfilter
Das könnte man jetzt natürlich weiterbearbeiten, um noch mehr Schärfe reinzubringen oder um die Linie zu verdünnen. zb ein wenig an der Sättigung herumfummeln:
Hier empfiehlt es sich ein wenig über Kantendetektion einzulesen. Der Canny-Algorithmus zB sieht sehr passend aus. Mit dem kannst du immerhin schon einen Meridian herausfinden und als Spline in dein Programm einbauen. Du musst dann später nur noch ein paar Polygonlinien zwischen den Splines einfügen. Mathematisch gesehen, solltest du ihn verstehen können.
Die Laserlinie ist ja ziemlich dick. Wenn man die durch Bildfilter glätten und schmaler machen kann, ist das schon ein guter Anfang. Die Ränder sind dann nicht mehr so ausgefranst.
Mit einem Kontrastfilter hebst du zB die Laserlinie vor und blendest die anderen Bereiche des Bildes fast aus. Hier mal ein Beispiel mit einem deiner Bilder vom Anfang des Threads:
Original
Kontrastfilter
Das könnte man jetzt natürlich weiterbearbeiten, um noch mehr Schärfe reinzubringen oder um die Linie zu verdünnen. zb ein wenig an der Sättigung herumfummeln:
Hier empfiehlt es sich ein wenig über Kantendetektion einzulesen. Der Canny-Algorithmus zB sieht sehr passend aus. Mit dem kannst du immerhin schon einen Meridian herausfinden und als Spline in dein Programm einbauen. Du musst dann später nur noch ein paar Polygonlinien zwischen den Splines einfügen. Mathematisch gesehen, solltest du ihn verstehen können.
Anhänge
Zuletzt bearbeitet:
Ähnliche Themen
- Antworten
- 15
- Aufrufe
- 756
- Antworten
- 98
- Aufrufe
- 8.520
- Antworten
- 2
- Aufrufe
- 1.138
- Antworten
- 5
- Aufrufe
- 1.661