Räkna prickarna på en tärning
Nu när vi har hittat konturerna kan vi hämta information från dem.
I föregående övning förberedde vi en bild med lila tärningar för att hitta konturerna:

Den här gången ska vi avgöra vilket nummer som slagits på tärningen genom att räkna prickarna i bilden.
Konturerna som hittades i föregående övning är förhandsladdade som contours.
Skapa en lista med alla konturers former som shape_contours. Du kan se alla konturformerna genom att anropa shape_contours i konsolen när du har skapat listan.
Kontrollera att de flesta konturerna inte är större än 50. Om du räknar dem motsvarar antalet exakt antalet prickar i bilden.
show_image_contour(image, contours) är en förhandsladdad funktion som visar bilden med alla hittade konturer med hjälp av Matplotlib.
Den här övningen är en del av kursen
Bildbehandling i Python
Övningsinstruktioner
- Gör
shape_contourstill en lista med alla konturformer fråncontours. - Sätt
max_dots_shapetill 50. - Ange formvillkoret för konturerna så att det motsvarar den maximala formstorleken för prickarna,
max_dots_shape. - Skriv ut tärningens nummer.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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(____)))