ÎncepețiÎncepe gratuit

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:

3 images showing the steps to find contours

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează shape_contours ca o listă cu dimensiunile tuturor contururilor din contours.
  • Setează max_dots_shape la 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(____)))
Editează și rulează codul