Виявлення країв (1)
Фільтри також можна використовувати як «детектори». Якщо частина зображення відповідає шаблону ваг, повернуте значення буде дуже великим (або дуже малим).
У разі виявлення країв таким шаблоном є зміна інтенсивності вздовж площини. Фільтр, що виявляє горизонтальні краї, може виглядати так:
weights = [[+1, +1, +1],
[ 0, 0, 0],
[-1, -1, -1]]
У цій вправі створіть детектор країв по вертикалі та перевірте, як він працює на рентгенівському знімку кисті (im).
Ця вправа є частиною курсу
Біомедична обробка зображень у Python
Інструкції до вправи
- Створіть масив ваг фільтра 3x3, який виявляє зміну інтенсивності зліва направо. Використовуйте лише значення
1,0та-1. - Згорніть
imіз цим детектором країв. - Побудуйте горизонтальні краї з колірною картою
seismic. Використайтеvmin=-150таvmax=150, щоб налаштувати шкалу колірної карти. - Додайте шкалу кольорів (colorbar) і відобразіть результати.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()