Compter les points sur l’image d’un dé
Nous avons maintenant trouvé les contours, nous pouvons en extraire des informations.
Dans l’exercice précédent, nous avons préparé une image de dés violets pour en détecter les contours :

Cette fois, nous allons déterminer le nombre obtenu sur le dé en comptant les points sur l’image.
Les contours trouvés dans l’exercice précédent sont préchargés dans contours.
Créez une liste contenant les tailles de tous les contours, appelée shape_contours. Vous pouvez visualiser toutes les tailles de contours en appelant shape_contours dans la console une fois la liste créée.
Vérifiez que la plupart des contours n’ont pas une taille supérieure à 50. Si vous les comptez, vous obtenez exactement le nombre de points présents sur l’image.
show_image_contour(image, contours) est une fonction préchargée qui affiche l’image avec tous les contours détectés à l’aide de Matplotlib.
Cet exercice fait partie du cours
Traitement d’images en Python
Instructions
- Faites de
shape_contoursune liste contenant les tailles de tous les contours decontours. - Définissez
max_dots_shapeà 50. - Définissez la condition sur la taille des contours pour qu’elle soit la taille maximale des points,
max_dots_shape. - Affichez le nombre indiqué par le dé.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Create list with the shape of each contour
shape_contours = [cnt.shape[0] for cnt in ____]
# Set 50 as the maximum size of the dots shape
max_dots_shape = ____
# Count dots in contours excluding bigger than dots size
dots_contours = [cnt for cnt in contours if np.shape(cnt)[0] < ____]
# Shows all contours found
show_image_contour(binary, contours)
# Print the dice's number
print("Dice's dots number: {}. ".format(len(____)))