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
résultat 1
original 2
résultat 2
original 3
résultat 3
la source
Réponses:
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)
la source
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.
la source
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.
la source