Localização do raio r da (s) esfera (s) que pode ser sobrepujável na imagem 3D

9

Meu problema atual:

  • Eu tenho uma imagem binária de entrada 3D (uma matriz 3D que possui apenas 0 e 1) que consiste em números aleatórios de esfera com raio r.
  • Não sabemos quantas esferas existem na imagem.
  • Todas as esferas têm o mesmo raio r, mas não sabemos o raio r.
  • As esferas estão por todo o lado na imagem e podem se sobrepor.
  • imagem de exemplo é dada abaixo.

Minha exigência:

  • qual é o raio r?

Atualmente, simplesmente aplaino a imagem para livrar-me do eixo z e executar a detecção de arestas e estou tentando o Hough Transform usando: http://rsbweb.nih.gov/ij/plugins/hough-circles.html

No entanto, com Hough Transform, vejo que as variáveis ​​raio mínimo, raio máximo e número de círculos precisam ser especificados. Eu tentei algumas tentativas abaixo:

raio conhecido

raio desconhecido

Dados os parâmetros corretos, o Hough Transform pode detectar os círculos muito bem. Mas, na aplicação real, não sei quantas esferas existem, e fazer com que o programa tente adivinhar o raio mínimo e máximo não é viável. Existem outras maneiras de conseguir isso?

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

Karl
fonte
Edite sua pergunta e adicione uma descrição do formato da imagem de entrada.
O formato da imagem de entrada é uma imagem 3D binária.
Karl
Seu problema parece estar pouco restrito, a menos que você pretenda dizer que as esferas não podem se sobrepor.
ObscureRobot
Não, as esferas podem se sobrepor. No caso mais fácil, nenhuma esfera é sobreposta, mas isso nem sempre é verdade.
1100 Karl

Respostas:

9

Uma solução mais simples e muito mais eficiente em termos de computação quando comparada à Hough Transform é usar a transformação de distância:

  • Encontre a superfície de suas esferas (ou seja, os pixels que têm valor 1 e têm pelo menos um pixel 0 vizinho);
  • Calcule a transformação de distância em relação à superfície das esferas, mas restrinja a computação apenas a pixels internos às esferas. A saída será um mapa de distância;
  • O raio será exatamente o valor máximo no seu mapa de distância.

Outra vantagem dessa solução, quando comparada à transformação Hough, é que ela fornece um valor muito mais preciso para o raio.

Alceu Costa
fonte
Mas se duas esferas se sobrepõem, o máximo não seria a distância mais longa do lado oposto de uma esfera ao lado oposto da outra esfera?
endolith 30/03/12
11
@endolith Não, porque o valor da transformação de distância de um determinado pixel (voxel), nesse caso, corresponde à distância da superfície da esfera mais próxima.
Alceu Costa
3

A Transformação de Hough, em sua forma geral, não exige suposições no raio dos círculos que você está procurando, nem quantas existem. Talvez você tenha sido enganado por sua fonte. A transformação pode ser computacionalmente cara na sua forma mais geral; qualquer informação prévia que você tiver pode tornar a execução do algoritmo mais rápida e precisa.

Eu esperaria que a Transformação de Hough, considerando suas imagens de entrada, encontrasse o raio das esferas com razoável precisão; existem muitos pontos nas imagens que representam pontos na circunferência de círculos com o mesmo raio.

Dado esse raio, você parece ter o resto do problema resolvido, para que eu não escreva mais.

Vejo que a explicação da Wikipedia sobre a Transformação de Hough também indica que ela pode ser usada para encontrar objetos 3D em imagens 3D, desde que esses objetos possam ser parametrizados - o que certamente poderia ser uma esfera.


fonte