НачатьНачать бесплатно

Подсчёт точек на изображении кубика

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

В предыдущем упражнении мы подготовили изображение фиолетового кубика, чтобы найти его контуры:

3 images showing the steps to find contours

На этот раз мы определим, какое число выпало на кубике, подсчитав точки на изображении.

Контуры, найденные в предыдущем упражнении, уже загружены как 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(____)))
Редактировать и запускать код