Zacznij terazZacznij za darmo

Zlicz kropki na obrazie kostki do gry

Skoro mamy już znalezione kontury, możemy wyciągnąć z nich przydatne informacje.

W poprzednim ćwiczeniu przygotowaliśmy obraz fioletowej kostki do gry, aby znaleźć jej kontury:

3 images showing the steps to find contours

Tym razem ustalisz, jaka liczba wypadła na kostce, zliczając kropki na obrazie.

Kontury znalezione w poprzednim ćwiczeniu są wstępnie załadowane jako contours.

Utwórz listę wszystkich kształtów konturów o nazwie shape_contours. Możesz sprawdzić wszystkie kształty konturów, wywołując shape_contours w konsoli po jej utworzeniu.

Sprawdź, czy większość konturów nie ma rozmiaru większego niż 50. Jeśli je policzysz, uzyskasz dokładną liczbę kropek na obrazie.

show_image_contour(image, contours) to wstępnie załadowana funkcja, która wyświetla obraz ze wszystkimi znalezionymi konturami przy użyciu Matplotlib.

To ćwiczenie jest częścią kursu

Przetwarzanie obrazów w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz shape_contours jako listę zawierającą kształty wszystkich konturów z contours.
  • Ustaw max_dots_shape na 50.
  • Ustaw warunek kształtu konturów tak, aby odpowiadał maksymalnemu rozmiarowi kształtu kropek max_dots_shape.
  • Wydrukuj liczbę wyrzuconą na kostce.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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(____)))
Edytuj i uruchom kod