Wykrywanie krawędzi (1)
Filtry można również wykorzystywać jako „detektory". Jeśli fragment obrazu pasuje do wzorca wag, zwrócona wartość będzie bardzo wysoka (lub bardzo niska).
W przypadku wykrywania krawędzi wzorzec ten odpowiada zmianie intensywności wzdłuż pewnej płaszczyzny. Filtr wykrywający krawędzie poziome może wyglądać tak:
weights = [[+1, +1, +1],
[ 0, 0, 0],
[-1, -1, -1]]
W tym ćwiczeniu stwórz detektor krawędzi pionowych i sprawdź, jak dobrze radzi sobie ze zdjęciem rentgenowskim dłoni (im).
To ćwiczenie jest częścią kursu
Analiza obrazów biomedycznych w Pythonie
Instrukcje do ćwiczenia
- Utwórz tablicę filtrów 3x3 z wagami wykrywającymi zmianę intensywności od lewej do prawej. Używaj wyłącznie wartości
1,0i-1. - Wykonaj splot
imz detektorem krawędzi. - Wykreśl pionowe krawędzie, używając mapy kolorów
seismic. Zastosujvmin=-150ivmax=150, aby dostosować skalę mapy kolorów. - Dodaj pasek kolorów i wyrenderuj wyniki.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()