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