Znalezienie promienia r nakładającej się kuli na obrazie 3D


9

Mój obecny problem:

  • Mam wejściowy obraz binarny 3D (macierz 3D, która ma tylko 0 i 1), która składa się z losowych liczb kuli o promieniu r.
  • Nie wiemy, ile sfer jest na obrazie.
  • Wszystkie kule mają ten sam promień r, ale nie znamy promienia r.
  • Kule są rozmieszczone w dowolnym miejscu na obrazie i mogą się na siebie nakładać.
  • przykładowy obraz podano poniżej.

Moje wymaganie:

  • jaki jest promień r?

Obecnie po prostu spłaszczam obraz, aby pozbyć się osi Z i wykonać wykrywanie krawędzi, i próbuję transformacji Hougha za pomocą: http://rsbweb.nih.gov/ij/plugins/hough-circles.html

Jednak w przypadku transformacji Hougha widzę, że zmienne muszą mieć minimalny promień, maksymalny promień i liczbę okręgów. Próbowałem kilka prób poniżej:

znany promień

nieznany promień

Przy prawidłowych parametrach Hough Transform potrafi dobrze wykryć koła. Ale w prawdziwej aplikacji nie wiem, ile jest sfer, a podejmowanie przez program próby odgadnięcia minimalnego i maksymalnego promienia wydaje się niewykonalne. Czy istnieją inne sposoby na osiągnięcie tego?

Link: /math/118815/finding-radius-r-of-the-overlappable-spheres-in-3d-image


Edytuj swoje pytanie i dodaj opis formatu obrazu wejściowego.

Format obrazu wejściowego to binarny obraz 3D.
Karl

Twój problem wydaje się niewystarczająco ograniczony, chyba że chcesz powiedzieć, że kule nie mogą się pokrywać.
ObscureRobot,

Nie, kule mogą się nakładać. W najprostszym przypadku żadne kule nie nakładają się wcale, ale nie zawsze jest to prawdą.
Karl

Odpowiedzi:


9

Prostszym rozwiązaniem i znacznie bardziej wydajnym obliczeniowo w porównaniu z transformacją Hougha jest użycie transformacji odległości:

  • Znajdź powierzchnię swoich kulek (tj. Pikseli, które mają wartość 1 i mają co najmniej jeden sąsiedni piksel 0);
  • Oblicz transformację odległości w odniesieniu do powierzchni kulek, ale ogranicz obliczenia tylko do pikseli wewnętrznych dla kulek. Wynikiem będzie mapa odległości;
  • Promień będzie dokładnie maksymalną wartością na mapie odległości.

Kolejną zaletą tego rozwiązania w porównaniu z transformacją Hougha jest to, że zapewnia znacznie dokładniejszą wartość promienia.


Ale jeśli dwie sfery nakładają się na siebie, czyż maksymalna nie byłaby większa odległość od odległej strony jednej kuli do drugiej strony drugiej kuli?
endolith

1
@endolith Nie, ponieważ wartość transformacji odległości danego piksela (woksela) w tym przypadku odpowiada odległości do najbliższej powierzchni kuli.
Alceu Costa

3

Przekształcenie Hougha w swojej ogólnej formie nie wymaga domysłów w promieniu poszukiwanych kręgów ani ich liczby. Być może zostałeś wprowadzony w błąd przez swoje źródło. Transformacja może być kosztownie obliczeniowa w najbardziej ogólnej formie; wszelkie posiadane wcześniej informacje mogą sprawić, że wykonanie algorytmu będzie szybsze i dokładniejsze.

Spodziewałbym się, że Transformacja Hougha, biorąc pod uwagę wasze obrazy wejściowe, znajdzie promień kul z rozsądną dokładnością; na obrazach jest wiele punktów reprezentujących punkty na obwodzie okręgów o tym samym promieniu.

Biorąc pod uwagę ten promień, wydaje się, że reszta problemu została złamana, więc nie będę więcej pisać.

Widzę, że wyjaśnienie Wikipedii dotyczące transformaty Hougha wskazuje również, że można jej użyć do znalezienia obiektów 3D na obrazach 3D, pod warunkiem, że można sparametryzować te obiekty - czym z pewnością może być kula.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.