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:

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
Instrukcje do ćwiczenia
- Utwórz
shape_contoursjako listę zawierającą kształty wszystkich konturów zcontours. - Ustaw
max_dots_shapena 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(____)))