Dessiner les coutour d'une image
Résolu/Fermé
Hamster18
Messages postés
178
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
22 janvier 2024
-
19 déc. 2019 à 16:40
Hamster18 Messages postés 178 Date d'inscription mercredi 2 janvier 2019 Statut Membre Dernière intervention 22 janvier 2024 - 22 déc. 2019 à 18:54
Hamster18 Messages postés 178 Date d'inscription mercredi 2 janvier 2019 Statut Membre Dernière intervention 22 janvier 2024 - 22 déc. 2019 à 18:54
A voir également:
- Dessiner les coutour d'une image
- Image iso - Guide
- Comment agrandir une image - Guide
- Acronis true image - Télécharger - Sauvegarde
- Google recherche par image - Guide
- Faststone image viewer - Télécharger - Visionnage & Diaporama
2 réponses
Bonsoir,
Je ne connais pas ce module PyWavelets qui a l'air pas mal.
Mais avec le module opencv, tu auras plus de chance de trouver des exemples parlants, car il est beaucoup plus connu et utilisé.
Une page intéressante.
https://www.thepythoncode.com/article/contour-detection-opencv-python
J'ai rapidement testé ce code en utilisant ton image de gauche, en ajustant les seuils de détection, et en rectifiant ce que retourne findContours (3 valeurs au lieu de 2).
On arrive déjà à obtenir quelque chose de potable, mais qui sera sans doute à mieux ajuster aux couleurs à détecter dans ton image.
Je ne connais pas ce module PyWavelets qui a l'air pas mal.
Mais avec le module opencv, tu auras plus de chance de trouver des exemples parlants, car il est beaucoup plus connu et utilisé.
Une page intéressante.
https://www.thepythoncode.com/article/contour-detection-opencv-python
J'ai rapidement testé ce code en utilisant ton image de gauche, en ajustant les seuils de détection, et en rectifiant ce que retourne findContours (3 valeurs au lieu de 2).
On arrive déjà à obtenir quelque chose de potable, mais qui sera sans doute à mieux ajuster aux couleurs à détecter dans ton image.
import cv2 image = cv2.imread('img.png') image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY) _, binary = cv2.threshold(gray, 48, 48, cv2.THRESH_BINARY_INV) _, contours, __ = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) image = cv2.drawContours(image, contours, -1, (0, 255, 0), 1) cv2.imshow("", image) cv2.waitKey(0) cv2.destroyAllWindows()
Hamster18
Messages postés
178
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
22 janvier 2024
19 déc. 2019 à 22:32
19 déc. 2019 à 22:32
Bonsoir,
J'ai tester votre code cepandant j'ai l'erreur ; " ValueError: not enough values to unpack (expected 3, got 2)". Avez une idée du porquoi ?
Cordialement.
J'ai tester votre code cepandant j'ai l'erreur ; " ValueError: not enough values to unpack (expected 3, got 2)". Avez une idée du porquoi ?
Cordialement.
Hamster18
Messages postés
178
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
22 janvier 2024
>
trifou
20 déc. 2019 à 14:54
20 déc. 2019 à 14:54
Bonjour,
C'est la ligne 7 qui pose problème
C'est la ligne 7 qui pose problème
trifou
>
Hamster18
Messages postés
178
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
22 janvier 2024
Modifié le 20 déc. 2019 à 15:28
Modifié le 20 déc. 2019 à 15:28
Dans ce cas fais comme dans le tuto de la page, chez moi findContours retourne 3 valeurs, cela doit donc dépendre de la version d'opencv utilisé.
contours, _ = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
Hamster18
Messages postés
178
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
22 janvier 2024
>
trifou
22 déc. 2019 à 18:54
22 déc. 2019 à 18:54
D'accord merci beaucoup pour votre aide !!!