Detektera kanter (1)
Filter kan också användas som "detektorer". Om en del av bilden matchar viktmönstret kommer det returnerade värdet att vara mycket högt (eller mycket lågt).
Vid kantdetektering är mönstret en förändring i intensitet längs ett plan. Ett filter som detekterar horisontella kanter kan se ut så här:
weights = [[+1, +1, +1],
[ 0, 0, 0],
[-1, -1, -1]]
I den här övningen skapar du ett vertikalt kantdetekteringsfilter och undersöker hur väl det fungerar på röntgenbilden av en hand (im).
Den här övningen är en del av kursen
Biomedicinsk bildanalys i Python
Övningsinstruktioner
- Skapa en 3x3-array med filtervikter som detekterar när intensiteten förändras från vänster till höger. Använd endast värdena
1,0och-1. - Konvolvera
immed kantdetektorn. - Plotta de horisontella kanterna med färgschemat
seismic. Användvmin=-150ochvmax=150för att justera färgschemats skala. - Lägg till en färgskala och rendera resultatet.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()