Contar los puntos de la imagen de un dado
Ahora que hemos encontrado los contornos, podemos extraer información de ellos.
En el ejercicio anterior, preparamos una imagen de dados morados para encontrar sus contornos:
Esta vez determinaremos qué número salió para el dado, contando los puntos de la imagen.
Los contornos encontrados en el ejercicio anterior están precargados como contours
.
Crea una lista con todas las formas del contorno como shape_contours
. Puedes ver todas las formas del contorno llamando a shape_contours
en la consola, una vez que lo hayas creado.
Comprueba que la mayoría de los contornos no tengan un tamaño superior a 50. Si los cuentas, son el número exacto de puntos de la imagen.
show_image_contour(image, contours)
es una función precargada que muestra la imagen con todos los contornos encontrados utilizando Matplotlib.
Este ejercicio forma parte del curso
Procesado de imágenes en Python
Instrucciones de ejercicio
- Haz que
shape_contours
sea una lista con todas las formas de contorno decontours
. - Ajusta
max_dots_shape
a 50. - Establece como condición de forma de los contornos el tamaño máximo de forma de los puntos
max_dots_shape
. - Imprime el número del dado.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# 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(____)))