Contar os pontos na imagem de um dado
Agora que encontramos os contornos, podemos extrair informações deles.
No exercício anterior, preparamos uma imagem de dados roxos para encontrar seus contornos:
Desta vez, determinaremos qual número foi lançado no dado, contando os pontos na imagem.
Os contornos encontrados no exercício anterior são pré-carregados como contours
.
Crie uma lista com todas as formas de contorno como shape_contours
. Você pode ver todas as formas de contorno chamando shape_contours
no console, depois de criá-lo.
Verifique se a maioria dos contornos não é maior do que 50. Se você contá-los, eles são o número exato de pontos na imagem.
show_image_contour(image, contours)
é uma função pré-carregada que exibe a imagem com todos os contornos encontrados usando o Matplotlib.
Este exercício faz parte do curso
Processamento de imagens em Python
Instruções de exercício
- Faça com que
shape_contours
seja uma lista com todas as formas de contorno decontours
. - Defina
max_dots_shape
como 50. - Defina a condição de forma dos contornos como o tamanho máximo da forma dos pontos
max_dots_shape
. - Imprima o número do dado.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
# 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(____)))