Encontrar el radio r de las esferas superpuestas en la imagen 3D

9

Mi problema actual:

  • Tengo una imagen binaria 3D de entrada (una matriz 3D que solo tiene 0 y 1) que consta de números aleatorios de esfera con radio r.
  • No sabemos cuántas esferas hay en la imagen.
  • Todas las esferas tienen el mismo radio r, pero no conocemos el radio r.
  • Las esferas están por todas partes en la imagen y pueden superponerse entre sí.
  • La imagen de ejemplo se da a continuación.

Mi requisito:

  • ¿Cuál es el radio r?

Actualmente, simplemente aplano la imagen para deshacerme del eje z y realizar la detección de bordes y estoy probando Hough Transform usando: http://rsbweb.nih.gov/ij/plugins/hough-circles.html

Sin embargo, con Hough Transform, veo que las variables radio mínimo, radio máximo y número de círculos deben especificarse. He intentado algunos intentos a continuación:

radio conocido

radio desconocido

Dados los parámetros correctos, Hough Transform puede detectar los círculos perfectamente. Pero en la aplicación real, no sé cuántas esferas hay, y hacer que el programa intente adivinar el radio mínimo y máximo no parece factible. ¿Hay otras formas de lograr esto?

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

Karl
fuente
Edite su pregunta y agregue una descripción del formato de la imagen de entrada.
El formato de la imagen de entrada es una imagen binaria en 3D.
Karl
Su problema parece poco restringido, a menos que tenga la intención de decir que las esferas no pueden superponerse entre sí.
ObscureRobot
No, las esferas pueden superponerse entre sí. En el caso más fácil, no se superponen esferas, pero esto no siempre es cierto.
Karl

Respuestas:

9

Una solución más simple y mucho más eficiente computacionalmente en comparación con Hough Transform es usar la transformación de distancia:

  • Encuentre la superficie de sus esferas (es decir, los píxeles que tienen el valor 1 y tienen al menos un píxel vecino de 0);
  • Calcule la transformación de distancia con respecto a la superficie de las esferas, pero restrinja el cálculo solo a los píxeles que son internos a las esferas. La salida será un mapa de distancia;
  • El radio será exactamente el valor máximo en su mapa de distancia.

Otra ventaja de esta solución en comparación con la transformación de Hough es que proporciona un valor mucho más preciso para el radio.

Alceu Costa
fuente
Pero si dos esferas se superponen, ¿no sería el máximo la distancia más larga desde el lado lejano de una esfera al lado lejano de la otra esfera?
endolito
1
@endolith No, porque el valor de transformación de distancia de un píxel (voxel) dado, en este caso, corresponde a la distancia a la superficie de la esfera más cercana.
Alceu Costa
3

La Transformación de Hough no requiere, en su forma general, adivinar el radio de los círculos que está buscando ni cuántos hay. Quizás has sido engañado por tu fuente. La transformación puede ser computacionalmente costosa en su forma más general; cualquier información previa que tenga puede hacer que la ejecución del algoritmo sea más rápida y precisa.

Esperaría que la Transformación de Hough, dadas sus imágenes de entrada, encuentre el radio de las esferas con una precisión razonable; Hay muchos puntos en las imágenes que representan puntos en la circunferencia de círculos con el mismo radio.

Dado ese radio, parece que tienes el resto del problema resuelto, así que no escribiré más.

Veo que la explicación de Wikipedia de la Transformación de Hough también indica que se puede usar para encontrar objetos 3D en imágenes 3D, siempre que esos objetos se puedan parametrizar, lo que ciertamente podría ser una esfera.


fuente