Comment enlever les petits objets connectés à l'aide d'OpenCV
J'utilise OpenCV et Python, et je veux enlever le petit objet connecté de mon image.
J'ai le texte suivant de l'image binaire en entrée:
L'image est le résultat de ce code:
dilation = cv2.dilate(dst,kernel,iterations = 2)
erosion = cv2.erode(dilation,kernel,iterations = 3)
Je veux supprimer les objets mis en surbrillance en rouge:
Comment puis-je réaliser cela à l'aide d'OpenCV?
- Quels critères avez-vous utilisés pour déterminer les objets à mettre en avant? Pourquoi ces 7 et tous les autres de la même taille ou de petits objets?
- nn je veux enlever tous les petits objets et ce 7 sa juste exemple pour l'objet que je veux le supprimer
- Je veux utiliser la surface de l'objet en tant que critères
- Qu'en est
findContours
, filtre les contours parcontourArea
, etdrawContours
sur les petits et les remplir avec des noirs. - je connais cette méthode mais j'ai besoin d'utiliser une méthode sans contour 🙁
- Alors pourquoi ne pas vous mentionner que fait (et de préciser que l'exigence) que dans votre question?
- mais ma question sur les objets connectés et aussi avec abinary image C'est pas suffisant?
Vous devez vous connecter pour publier un commentaire.
Comment sur avec
connectedComponentsWithStats
:De sortie :
Afin de supprimer automatiquement les objets que vous devez rechercher dans l'image.
À partir de l'image que vous avez fourni, je ne vois rien qui distingue les 7 éléments mis en évidence par les autres.
Vous devez indiquer à votre ordinateur comment reconnaître les objets que vous ne voulez pas. Si elles sont identiques, ce n'est pas possible.
Si vous avez plusieurs images où les objets regarde toujours comme ça, on pourrait utiliser le modèle des techniques d'appariement.
Également la clôture de l'opération n'a pas beaucoup de sens pour moi.