Estou trabalhando em um projeto de aplicação do Active Shape Model para localizar dente em radiografia dentária. Para aqueles familiarizados com a técnica, atualmente estou tentando amostrar vetores normais para cada ponto de referência. O artigo recomenda obter derivadas de pixels amostrados: "Para reduzir os efeitos das mudanças de intensidade global, amostramos a derivada ao longo do perfil, em vez dos valores absolutos de nível de cinza".
Portanto, meu problema é como filtrar radiografias dentárias da melhor maneira para prepará-las para a aplicação do operador derivado. Atualmente, estou usando a combinação de filtro mediano para remover a maior parte do que eu acho que é ruído quântico (manchas). É seguido por filtro bilateral . Em seguida, aplico o operador Scharr para calcular o gradiente real que deve ser amostrado.
Os resultados são apresentados abaixo:
A primeira imagem mostra dados originais. Na segunda e terceira imagem, os dados filtrados são apresentados, primeiro como uma magnitude do espectro após a FFT e depois como dados da imagem filtrada. A quarta imagem mostra o resultado da aplicação do operador Scharr à terceira imagem.
Minhas perguntas são:
- Existem abordagens bem conhecidas para reduzir o ruído na radiografia dentária que diferem da minha abordagem?
- O que está causando a aparência "esfumaçada" das arestas e áreas "planas" (sem arestas)? Existe algum tipo de ruído restante na imagem filtrada ou é inerente ao operador de gradiente? Se é realmente um ruído, qual filtro seria mais adequado para uso? O filtro mediano foi bom em remover pequenas bolhas barulhentas, mas o núcleo grande faz com que as bordas fiquem muito borradas. Portanto, o filtro bilateral é usado para filtrar blobs maiores e equalizar a cor sobre a área sem danificar as bordas, mas não é capaz de filtrar essa estrutura enfumaçada.
- Existe uma opção melhor do que o operador Scharr para criar gradiente neste caso?
- Bônus: isso seria considerado uma boa entrada para o Active Shape Model? Ainda não estou ciente de quão robustos eles são.
Respostas:
Tanto quanto eu entendi, por derivação de imagem você quer dizer extrair bordas. Eu recomendaria filtrar a imagem por um filtro gaussiano relativamente grande. Se o custo computacional da derivação de imagem não for crítico para o seu trabalho, eu recomendaria o uso de um detector de borda inteligente. É menos sensível ao ruído e não se engana com o ruído, e encontra bordas fracas juntamente com bordas fortes. Instruções do Matlab para isso:
e o resultado é (eu sei que podem não ser os resultados que você está procurando, no entanto, jogar com variáveis Threshold e tamanho do filtro trará resultados desejáveis):
Observe que você não vê mais efeito esfumaçado. Também sobre essas arestas erradas, você pode removê-las usando as técnicas de abertura e fechamento de imagens.
fonte