Cuenta los puntos en 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ó en el dado contando los puntos de la imagen.
Los contornos encontrados en el ejercicio anterior están precargados como contours.
Crea una lista con las formas de todos los contornos como shape_contours. Puedes ver todas las formas de los contornos llamando a shape_contours en la consola, una vez la hayas creado.
Comprueba que la mayoría de los contornos no son mayores de tamaño que 50. Si los cuentas, son el número exacto de puntos en la imagen.
show_image_contour(image, contours) es una función precargada que muestra la imagen con todos los contornos encontrados usando Matplotlib.
Este ejercicio forma parte del curso
Procesamiento de Imágenes en Python
Instrucciones del ejercicio
- Haz que
shape_contourssea una lista con todas las formas de los contornos decontours. - Define
max_dots_shapecomo 50. - Establece la condición de forma de los contornos para que sea el tamaño máximo de la forma de los puntos
max_dots_shape. - Imprime el número del dado.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el 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(____)))