Estou totalmente preso em um problema relacionado à segmentação de objetos vítreos. Eu preciso obter o objeto o mais preciso possível. Minhas abordagens eram diferentes. No começo, tentei remover o fundo, para que restassem apenas alguns contornos nítidos. Mas isso funciona apenas para objetos com arestas / gradientes nítidos. Caso contrário, o próprio objeto também será removido. Eu publiquei duas imagens diferentes.
Tentei remover o fundo por meio de operações morfológicas, como dilatação em escala de cinza e uma divisão nele. mas não ajudou muito. depois, tentei um k-médias com k = 3 para separar o fundo modificado dos valores cinza e preto do vidro. Isso não foi bem-sucedido em alguns casos, mas não no geral / em média. Também tentei fazer uma detecção inteligente de borda com um filtro blured geral, mas isso levou a resultados mais fracos em forma de contornos abertos, muito ruído, etc. pp.
Asny com resultados automáticos do limiar:
testimg = imread('http://i.imgur.com/huQVt.png');
imshow(testimg)
imedges = edge(testimg,'canny');
imshow(imedges);
O mesmo vale para a segunda imagem.
Como você pode ver, há muito ruído dentro e fora e bordas dobradas da borda do vidro. Mesmo existem lacunas nas bordas.
Portanto, preciso de seus conselhos para obter uma abordagem geral para lidar com esse problema de materiais semitransparentes, não apenas para essas duas imagens.
1) Outras idéias para remover o fundo sem danificar o objeto?
2) Outros métodos de segmentação para separar o objeto do plano de fundo?
Se possível, com dicas do Matlab, IPT ou da caixa de ferramentas estatísticas. Quaisquer outras dicas também são bem-vindas!
Agradecemos sua resposta com antecedência. Atenciosamente
Respostas:
Por que não usar apenas um simples arquivador passa-alto 2D FFT (guassiano)?
Eu fiz isso bem rápido usando o MATLAB
Fragmento # 1 usando FFT de passe alto:
A mesma coisa é feita no número 2.
Fragmento 2 usando FFT de passe alto:
Como você pode ver, a área de fundo e de vidro é apagada e apenas as bordas são traçadas. Não gastei muito tempo com isso, mas você pode limitar a saída filtrada da HP para ter bordas mais nítidas ou aumentar o corte da HP.
Esse é mais o resultado que você deseja obter?
fonte
Esta não é uma tentativa de responder a toda a pergunta, mas tenho uma idéia sobre "limpar a imagem" .
Você disse que tentou já operações morfológicas , e isso é uma variação da ideia, espero que seja uma atualização.
Este artigo: A. Vichik, R. Keshet, D. Malah: A morfologia auto-dupla em semiláticos e aplicações de árvores propõe uma maneira de aprimorar os operadores morfológicos clássicos de uma maneira que possa adicionar propriedades mais desejáveis a eles.
O artigo sugere escolher uma representação hierárquica de uma imagem de acordo com as propriedades desejáveis e, em seguida, propõe um método para definir operadores como erosão, dilatação, abertura, cartola nessa representação . Em suas próprias palavras:
Expliquei essas estruturas hierárquicas em forma de árvore na segunda parte desta resposta ( abordagens semânticas ) , às quais você pode adicionar a árvore da bacia hidrográfica de Extrema mencionada no artigo que eu liguei aqui (e novamente) .
É uma atualização para (citando os autores) "morfologia matemática tradicional em escala de cinza" porque as operações mantêm as propriedades desejáveis das representações . Por exemplo, se sua representação hierárquica for auto-dupla, seus operadores serão realmente auto-duplos (por exemplo, compare com quase fechamento de abertura -próprio-duplo pela reconstrução que não é realmente auto-dual).
O artigo vinculado também apresenta alguns resultados para filtrar o ruído - você pode comparar os resultados do artigo (e da tese mencionada no artigo) com o que você precisa (pelo menos visualmente) e ver se funcionaria para você antes de iniciar codificar.
Portanto, ao escolher a árvore de representação mais simples (max / min-) produzirá exatamente as operações clássicas, a escolha de uma árvore auto-dupla que melhor atenda às suas necessidades poderá fornecer uma abordagem suficientemente robusta.
fonte