Detekce hran (1)
Filtry lze využít také jako "detektory". Pokud část obrazu odpovídá vzoru vah, vrácená hodnota bude velmi vysoká (nebo velmi nízká).
Při detekci hran je tímto vzorem změna intenzity podél roviny. Filtr detekující horizontální hrany může vypadat takto:
weights = [[+1, +1, +1],
[ 0, 0, 0],
[-1, -1, -1]]
V tomto cvičení vytvoř detektor vertikálních hran a otestuj, jak dobře funguje na rentgenovém snímku ruky (im).
Toto cvičení je součástí kurzu
Biomedical Image Analysis in Python
Pokyny k cvičení
- Vytvoř pole filtračních vah o velikosti 3x3, které detekuje změnu intenzity zleva doprava. Používej pouze hodnoty
1,0a-1. - Proveď konvoluci
ims detektorem hran. - Zobraz horizontální hrany pomocí colormapy
seismic. Pro nastavení rozsahu colormapy použijvmin=-150avmax=150. - Přidej barevnou škálu (colorbar) a vykresli výsledky.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Set weights to detect vertical edges
weights = [[____], [____], [____]]
# Convolve "im" with filter weights
edges = ____
# Draw the image in color
plt.imshow(____, ____, vmin=-150, vmax=150)
____
format_and_render_plot()