Zähle die Punkte auf dem Würfelbild
Jetzt, da wir die Konturen gefunden haben, können wir Informationen daraus extrahieren.
In der vorherigen Übung haben wir ein Bild eines violetten Würfels aufbereitet, um seine Konturen zu finden:

Diesmal bestimmen wir die gewürfelte Zahl, indem wir die Punkte im Bild zählen.
Die in der vorherigen Übung gefundenen Konturen sind als contours vorab geladen.
Erstelle eine Liste mit allen Formen der Konturen als shape_contours. Du kannst dir alle Konturformen anzeigen lassen, indem du nach dem Erstellen shape_contours in der Konsole aufrufst.
Prüfe, dass die meisten Konturen nicht größer als 50 sind. Wenn du sie zählst, entspricht das genau der Anzahl der Punkte im Bild.
show_image_contour(image, contours) ist eine vorab geladene Funktion, die das Bild mit allen gefundenen Konturen mit Matplotlib anzeigt.
Diese Übung ist Teil des Kurses
<Kurs>Bildverarbeitung mit Python</Kurs>Übungsanweisungen
- Mache
shape_contourszu einer Liste mit allen Konturformen auscontours. - Setze
max_dots_shapeauf 50. - Setze die Formbedingung der Konturen so, dass sie die maximale Formgröße der Punkte
max_dots_shapenicht überschreitet. - Gib die Augenzahl des Würfels aus.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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(____)))