Pipeline pro zpracování obrazu
Tvůj kolega napsal předzpracovávací funkci pro obrázky americké znakové řeči, která pomůže zvýšit přesnost modelu strojového učení. Tato funkce vezme obrázek ve stupních šedi a spustí na něm Cannyho detekci hran. Cannyho detekce hran se běžně používá v klasickém počítačovém vidění a zvýrazňuje hrany objektů na obrázku. Chceš ji aplikovat na všechny obrázky ve svém datasetu.
Funkce, kterou kolega napsal, je v prostředí dostupná jako compute_edges() a přijímá obrázek s rozměry (1, h, w), kde výška h a šířka w mohou být libovolná celá čísla.
Dask pole tvých obrázků je v prostředí dostupné jako image_array. Toto pole má tvar (N, h, w, 3), kde N je počet obrázků a 3 kanály odpovídají červené, modré a zelené barvě.
dask.array je importován jako da.
Toto cvičení je součástí kurzu
Parallel Programming with Dask in Python
Pokyny k cvičení
- Převeď obrázek z barevného na stupně šedi tak, že vypočítáš průměr podél poslední dimenze.
- Pomocí metody
.map_blocks()na poli obrázků ve stupních šedi aplikuj funkcicompute_edges()na každý obrázek. - Vyber pouze nultý obrázek hran a vypočítej ho.
- Zobraz hrany pomocí
plt.imshow().
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Convert the color photos to grayscale
grayscale_images = ____
# Apply the edge detection function
edge_images = ____.____(____)
# Select the zeroth image and compute its values
sample_image = ____
# Show the result
____(____, cmap='gray')
plt.show()