Подсчёт точек на изображении кубика
Теперь, когда контуры найдены, можно извлечь из них полезную информацию.
В предыдущем упражнении мы подготовили изображение фиолетового кубика, чтобы найти его контуры:

На этот раз мы определим, какое число выпало на кубике, подсчитав точки на изображении.
Контуры, найденные в предыдущем упражнении, уже загружены как contours.
Создайте список с формами всех контуров и назовите его shape_contours. Чтобы просмотреть все формы контуров, вызовите shape_contours в консоли после создания списка.
Проверьте, что большинство контуров по размеру не превышают 50. Если подсчитать их, получится ровно столько точек, сколько изображено на кубике.
show_image_contour(image, contours) — это предварительно загруженная функция, которая отображает изображение со всеми найденными контурами с помощью Matplotlib.
Это упражнение является частью курса
Обработка изображений в Python
Инструкции к упражнению
- Создайте
shape_contoursкак список форм всех контуров изcontours. - Установите
max_dots_shapeравным 50. - Задайте условие для формы контуров: размер формы не должен превышать
max_dots_shape. - Выведите число на кубике.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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(____)))