Conta i puntini nell'immagine di un dado
Ora che abbiamo trovato i contorni, possiamo estrarre informazioni da essi.
Nel precedente esercizio abbiamo preparato un'immagine di dadi viola per trovarne i contorni:

Questa volta determineremo quale numero è uscito sul dado, contando i puntini nell'immagine.
I contorni trovati nell'esercizio precedente sono già caricati come contours.
Crea una lista con le dimensioni di tutti i contorni chiamata shape_contours. Puoi vedere tutte le dimensioni dei contorni richiamando shape_contours nella console, una volta creata.
Verifica che la maggior parte dei contorni non sia più grande di 50. Se li conti, corrispondono esattamente al numero di puntini nell'immagine.
show_image_contour(image, contours) è una funzione pre-caricata che mostra l'immagine con tutti i contorni trovati usando Matplotlib.
Questo esercizio fa parte del corso
Elaborazione di immagini in Python
Istruzioni dell'esercizio
- Fai in modo che
shape_contourssia una lista con le dimensioni di tutti i contorni incontours. - Imposta
max_dots_shapea 50. - Imposta la condizione sulla dimensione dei contorni affinché sia minore o uguale alla dimensione massima dei puntini
max_dots_shape. - Stampa il numero del dado.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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(____)))