ПочатиПочніть безкоштовно

Виявлення контурів (2)

Виявлення контурів можна виконувати вздовж кількох осей і потім об'єднувати в одне значення контуру. Для 2D-зображень горизонтальну та вертикальну «карту контурів» можна поєднати за теоремою Піфагора:

$$z = \sqrt{x^2 + y^2}$$

Один із популярних детекторів контурів — це фільтр Собеля. Фільтр Собеля надає підвищені ваги центральним пікселям детектора:

weights = [[ 1,  2,  1], 
           [ 0,  0,  0],
           [-1, -2, -1]]

У цій вправі поліпшіть попереднє виявлення, об'єднавши результати двох зображень, оброблених фільтром Собеля, у зведену карту контурів.

Ця вправа є частиною курсу

Біомедична обробка зображень у Python

Переглянути курс

Інструкції до вправи

  • Застосуйте ndi.sobel() до im вздовж першої та другої осей.
  • Обчисліть загальну величину контуру за теоремою Піфагора. Використайте np.sqrt() і np.square().
  • Відобразіть зображення величини. Використайте градації сірого та встановіть vmax у 75.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Apply Sobel filter along both axes
sobel_ax0 = ndi.sobel(____, axis=____)
sobel_ax1 = ____

# Calculate edge magnitude 
edges = ____

# Plot edge magnitude
plt.imshow(____, ____, ____)
format_and_render_plot()
Редагувати та запускати код