Numără punctele de pe un zar
Acum că am găsit contururile, putem extrage informații din ele.
În exercițiul anterior, am pregătit o imagine cu zaruri mov pentru a le identifica contururile:

De această dată, vom determina ce număr a fost obținut pe zar, numărând punctele din imagine.
Contururile găsite în exercițiul anterior sunt preîncărcate ca contours.
Creează o listă cu dimensiunile tuturor contururilor, numită shape_contours. Poți vedea toate dimensiunile contururilor apelând shape_contours în consolă, după ce ai creat-o.
Verifică că majoritatea contururilor nu depășesc dimensiunea 50. Dacă le numeri, vei obține exact numărul de puncte din imagine.
show_image_contour(image, contours) este o funcție preîncărcată care afișează imaginea cu toate contururile găsite, folosind Matplotlib.
Acest exercițiu face parte din cursul
Procesarea imaginilor în Python
Instrucțiuni pentru exercițiu
- Creează
shape_contoursca o listă cu dimensiunile tuturor contururilor dincontours. - Setează
max_dots_shapela 50. - Definește condiția de dimensiune a contururilor astfel încât să nu depășească dimensiunea maximă a punctelor,
max_dots_shape. - Afișează numărul de pe zar.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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(____)))