Znajdowanie linii środkowej z zestawu punktów 3D

21

Mam zestaw punktów 3D. Kierują się zakrzywionym wzorem o raczej stałej średnicy, jak pokazano poniżej. Jaki byłby algorytm do śledzenia przybliżonej linii środkowej tych punktów?

Punkty 3d

vinayan
źródło
Wielomian 3 stopień, Excel?
FelixIP
Jakiego rodzaju narzędzi używasz lub czy masz dostępne? Matlab? Przewyższać? R? Pyton?
Scott Newson,
@ ScottNewson - zdecydowanie nie Matlab. Jestem otwarty na każdy język programowania.
vinayan
To pytanie / odpowiedź może ci pomóc, /programming/29208554/calculate-centerline-in-3d-structure
Matt

Odpowiedzi:

7

Jest artykuł zatytułowany „Zakrzywiona rekonstrukcja z niezorganizowanych punktów” autorstwa In-Kwon Lee, który analizuje tworzenie linii / krzywych z zestawu punktów bez żadnego uporządkowania, wykorzystując metodę ruchomych najmniejszych kwadratów . Chociaż koncentruje się na aplikacjach 2D, wspomina o możliwości rozszerzenia go na wyższe wymiary. Poniższy obraz pochodzi z artykułu:

Zdjęcia zrobione ze wspomnianego papieru

W „ Rozdziale 4 - Rozszerzenie 3D ” opisano, w jaki sposób metody nie można zastosować bezpośrednio do 3 wymiarów, ale można obliczyć krzywą regresji kwadratowej 3D poprzez:

  • Grupowanie sąsiednich punktów za pomocą ruchomej metody najmniejszych kwadratów
  • Obliczanie płaszczyzny regresji K : z = A x + B y + C poprzez minimalizację kwadratu
  • Rzutowanie sąsiednich punktów na płaszczyznę K i rozwiązanie problemu ruchomych najmniejszych kwadratów 2D.

Mam nadzieję że to pomoże! (Całkiem interesujący artykuł!)

Joseph
źródło
1
@whuber - Dziękujemy za sprawdzenie. Zredagowałem swój post, gdy przypadkiem znalazłem artykuł, który może opisać możliwą metodę.
Joseph
2
Niezłe znalezisko! EMST to dobry wybór, na którym można oprzeć rozwiązanie. (+1) Procedurę opisaną w tym dokumencie można poprawić za pomocą solidnych metod wygładzania, takich jak Loess lub różne formy karanego pasowania splajnu.
whuber
3

Na to pytanie już udzielono odpowiedzi. Oto to samo pytanie:

zestaw dopasowanych krzywych-3d-danych

Jeśli szukasz gotowych do użycia narzędzi i kodów, istnieje wiele metod numerycznych do rozwiązania tego problemu, na przykład zachłanne podejście zaimplementowane w pakietach R, które można pobrać z GAM .

Jeśli szukasz czystych algorytmów do samodzielnego wdrożenia, sugeruję, abyś zapytał o to w społeczności matematyki ( http://math.stackexchange.com )

Ponadto ta strona wiki jest powiązana z twoim pytaniem ( http://en.wikipedia.org/wiki/Curve_fitting )

Farid Cheraghi
źródło
-1

EDYCJA: Wygląda na to, że to zła odpowiedź, linia dopasowania jest prosta! =)

Mr. Che
źródło
czy możesz podać przykład?
nickves
Co znaczy Adresy URL znajdują się w odpowiedzi.
Pan Che
2
Nie lubię głosować za odpowiedziami, ponieważ zawsze doceniam wysiłek i życzliwość, które one odzwierciedlają, ale denerwuje mnie odkrycie - po spojrzeniu na wszystkie trzy referencje - że żadna z nich nie odpowiada na pytanie. Tańczą wokół prostych odmian, takich jak dopasowanie linii prostej lub elipsoidy do punktów.
whuber
2
Spędziłem już dzień na pierwszym linku, mając nadzieję, że może się przydać :)
vinayan