5

Mam binarny obraz robaka (ekstrakcja kropel, która działa dobrze). Jestem zainteresowany dopasowaniem linii środkowej na dmuchawce (robaku).linia środkowa kropki wielokąta (obraz binarny)

Do tej pory wymyśliłem to: zaczynając od wielokąta (po ekstrakcji konturu kropelki na obrazie) Zastosowałem obliczenia voronoi i odrzuciłem wszystkie wierzchołki, które znajdują się poza poligonem (niebieskim), co dało mi czarny środek linia, którą mogę dalej wykorzystać, aby dopasować gładką linię środkową.

Jednak to obliczenie nie jest w pełni niezawodne (z powodu usuwania wierzchołków voronoi nie wewnątrz wielokąta?) Czy ktoś zna algorytmiczny przepływ pracy, aby uzyskać linię środkową wielokąta lub linię środkową obiektu typu blob (obraz binarny). (Skeletonization ?, triangulacja wieloboku stanowi użyciem środkowe z wewnętrznymi krawędziami)

Oto prezentacji:

enter image description here

Odpowiedz

0

I znaleźć lepsze rozwiązanie:

  • skeltonize blob binarny
  • zbuduj graph (bez cykli) szkieletu, śledząc linie pikseli i punkty rozgałęzień
  • uzyskać wszystkie najkrótsze ścieżki z każdego węzła końcowego do wszystkich innych węzłów końcowych i wziąć najdłuższy z nich (w przybliżeniu początek i koniec obiektu blob).
  • ścieżka wynikowa z jednego węzła końcowego (stopień = 1) do innego węzła końcowego jest przybliżenie środkowej linii robaka.

Jeśli ktoś jest zainteresowany rozwiązaniem, mogę udostępnić notes Pythona. końcowy wynik: zielony = końcowa wykres środkowej, ciemnozielone = końcowe linii środkowej

wykres Skelton

kod źródłowy:
Kod na to pytanie jest znaleźć tutaj: https://github.com/gabyx/WormAnalysis (jeśli go użyjesz, proszę gwiazdkę)

+0

To wygląda świetnie! Czy mógłbyś mi rzeczywiście udostępnić swój notes Pythona? Dzięki! – crazjo

+0

Oczywiście, będę publikować dzisiaj coś, już przygotowałem, jakiś czas temu ... trzeba go znaleźć ... – Gabriel

+1

Kod jest tutaj: https://github.com/gabyx/WormAnalysis – Gabriel