Segmentation des pilules de l'arrière-plan

9

Je viens tout juste de commencer le traitement d'image et j'ai suivi un cours à ce sujet à l'école Grad. Mais j'ai déjà un projet à faire sans trop d'informations sur le sujet, mais j'ai fait des progrès réguliers. J'essaie de segmenter les pilules de leurs origines respectives. Pour les images avec des arrière-plans contrastés, j'ai pu segmenter les pilules en utilisant la méthode d'Otsu. En ce qui concerne les images avec des arrière-plans similaires, la méthode d'Otsu ne fonctionne pas tout à fait. J'ai lu pas mal d'articles sur la segmentation, mais la plupart des articles que j'ai lus utilisent une valeur de seuil manuelle en fonction du type d'image. Est-il possible de détecter la valeur de seuil correcte et de seuiller automatiquement une image et d'utiliser des techniques telles que la culture de graines ou le clustering pour segmenter l'image?

L'espace colorimétrique que j'utilise est L a b *, donc j'apprécierais que vous recommandiez l'espace colorimétrique approprié que je devrais utiliser également.

Les images en question:

original 1

entrez la description de l'image ici

résultat 1

entrez la description de l'image ici

original 2

entrez la description de l'image ici

résultat 2

entrez la description de l'image ici

original 3

entrez la description de l'image ici

résultat 3

entrez la description de l'image ici

GamingX
la source
7
Pourriez-vous télécharger une image s'il vous plaît? Qu'en est-il du seuillage adaptatif?
Quentin Geissmann
3
Qu'en est-il des méthodes Level Set et des contours actifs? Vous pouvez segmenter les pilules de l'arrière-plan non seulement par valeur d'intensité (seuil), mais également en fonction de la texture de l'objet. L'espace colorimétrique utilisé n'est qu'un système de coordonnées pour les couleurs - utilisez celui qui distingue le mieux les couleurs de votre image à des fins de segmentation. Par exemple, si les images sont dans des tons violets, vous pouvez utiliser la conversion en niveaux de gris avec plus de poids sur les composants rouge et bleu.
Libor
Quentin: Je n'ai pas assez de réputation pour télécharger les photos.
GamingX
@Syed Téléchargez-les dans un endroit public et ajoutez les liens à la question si vous le souhaitez.
Maurits

Réponses:

2

Si vous souhaitez utiliser l'approche de seuillage, vous devez utiliser une méthode de seuillage adaptative s'il y a de grandes variations d'éclairage comme dans le troisième exemple d'image ( question dsp ici ).

De plus, vous devriez expérimenter avec les espaces colorimétriques, c'est facile: le script pour décomposer l'image en différents espaces colorimétriques ne devrait pas dépasser quelques lignes, et de nombreux visualiseurs d'images ont cette option disponible. Le meilleur doit être facile à déterminer simplement visuellement. Si vous voulez lire sur les espaces de couleurs, il y a une autre bonne question dsp ici .

Enfin, vous voudrez peut-être essayer une approche différente. Une idée serait de faire une segmentation non parfaite, puis une détection de bord , et enfin d'utiliser quelque chose comme la transformation de Hough pour les cercles qui fonctionne également très bien sur les arcs de cercle (incomplets). (cette idée n'est bien sûr applicable qu'aux pilules rondes)

Pénélope
la source
Quelle serait une bonne idée pour une segmentation non parfaite?
GamingX
@Syed ressemble à OpenCV Canny (détection des bords) et même Hough fonctionne sur des images grises (pas besoin de seuil), vous pouvez donc ignorer l'étape de seuillage tous ensemble. Le seuillage - segmentation dépend fortement des images. Mais, une réponse directe serait: désolé, je ne sais pas. Je pense qu'une méthode non adaptative serait suffisante, mais je ne pouvais pas suggérer de méthode spécifique car je ne l'ai pas fait pendant un certain temps. Faites juste une petite recherche sur les méthodes de segmentation simples ;)
penelope
2

Les transformations de cercle de la bibliothèque OpenCV sont bien adaptées à cette application. Vous devrez exécuter un certain nombre de rayons, mais la meilleure réponse possible vous donnera les limites et les centres des pilules. Notez que vous devrez utiliser des transformations de Hough généralisées pour trouver des pilules non circulaires. Cela fonctionnera même si les pilules ont des points de bord occlus ou manquants.

Le seuillage peut être une mauvaise solution à cela, car sur le terrain, vous pourriez tomber dans des situations où aucun seuil ne séparera la pilule de l'arrière-plan, c'est pourquoi un algorithme qui dépend des positions relatives des groupes d'arêtes est supérieur.

Christian Chapman
la source
1

Pour résoudre ce problème, vous devez séparer l'arrière-plan et l'avant-plan. C'est la solution, je vous propose:

1) convertir l'image de Rgb en niveaux de gris; Vous obtiendrez une image que nous appelons I1;

2) appliquer un filtre morphologique, l'érosion utilisant un grand rayon, éventuellement plusieurs fois ==> vous devez effacer la pilule par érosion et n'obtenir que le fond; Vous obtiendrez une nouvelle image I2;

3) soustrayez I2à I1, vous obtiendrez le premier plan, c'est-à-dire la pilule;

4) appliquez un autre filtre morphologique pour remplir tout trou dans la pilule que vous avez obtenue;

5) appliquer un filtre morphologique, érosion, petit rayon pour éliminer tout pixel isolé.

Cette méthode ne nécessite aucun seuil, détection de forme, segmentation de couleur ou autre.

samir
la source