Kom igångKom igång gratis

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

Visa kurs

Ö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, 0 och -1.
  • Konvolvera im med kantdetektorn.
  • Plotta de horisontella kanterna med färgschemat seismic. Använd vmin=-150 och vmax=150 fö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()
Redigera och kör kod