Je suis totalement coincé sur un problème de segmentation des objets vitreux. J'ai besoin d'obtenir l'objet aussi précis que possible. Mes approches étaient différentes. Au début, j'ai essayé de supprimer l'arrière-plan, de sorte qu'il ne reste que quelques contours nets. Mais cela ne fonctionne que pour les objets qui ont des bords / gradients nets. Sinon, l'objet lui-même est également supprimé. J'ai posté deux images différentes.
J'ai essayé de supprimer l'arrière-plan via des opérations morphologiques, comme une dilatation en niveaux de gris et une division dessus. mais cela n'a pas beaucoup aidé. après cela, j'ai essayé un k-means avec k = 3 pour obtenir l'arrière-plan modifié séparé des valeurs de gris et de noir du verre. Cela n'a pas réussi dans certains cas, mais pas dans l'ensemble / en moyenne. J'ai également essayé de faire une détection de bord rusé avec un filtre global estompé, mais cela conduit à des résultats plus faibles sous forme de contours ouverts, beaucoup de bruit, etc.
Canny avec des résultats de seuil automatiques:
testimg = imread('http://i.imgur.com/huQVt.png');
imshow(testimg)
imedges = edge(testimg,'canny');
imshow(imedges);
Il en va de même pour la deuxième image.
Comme vous pouvez le voir, il y a beaucoup de bruit à l'intérieur et à l'extérieur et des bords doublés à partir de la bordure en verre. Même il y a des lacunes dans les bords.
J'ai donc besoin de vos conseils pour obtenir une approche générale pour traiter ce problème des matériaux semi-transparents, pas seulement pour ces deux images.
1) D'autres idées pour supprimer l'arrière-plan sans endommager l'objet?
2) D'autres méthodes de segmentation pour séparer l'objet de l'arrière-plan?
Si c'est possible, alors avec Matlab, IPT ou des conseils de boîte à outils statistiques. Tout autre indice est également le bienvenu!
Merci d'avance pour votre réponse. Cordialement