НачатьНачать бесплатно

Применение маски

Маски являются бинарными, однако их можно применять к изображениям, чтобы отфильтровать пиксели, для которых маска равна False.

Функция where() из NumPy — удобный способ применения масок. Она принимает три аргумента:

np.where(condition, x, y)

condition, x и y могут быть как массивами, так и отдельными значениями. Это позволяет сохранять исходные значения пикселей изображения, а маскированным пикселям присваивать значение 0.

Поупражняемся в применении масок: выделим пиксели, соответствующие костной ткани, на рентгеновском снимке кисти (im).

Это упражнение является частью курса

Анализ биомедицинских изображений на Python

Посмотреть курс

Инструкции к упражнению

  • Создайте булеву маску костной ткани, выбрав пиксели со значением, большим или равным 145.
  • Примените маску к изображению с помощью np.where(). Пикселям, не попавшим в маску, присвойте значение 0.
  • Постройте гистограмму маскированного изображения. Чтобы выбрать только ненулевые пиксели, используйте следующие аргументы: min=1, max=255, bins=255.
  • Отобразите маскированное изображение и гистограмму. Этот шаг уже выполнен за вас.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Import SciPy's "ndimage" module
____

# Screen out non-bone pixels from "im"
mask_bone = ____
im_bone = np.where(____, ____, ____)

# Get the histogram of bone intensities
hist = ____

# Plot masked image and histogram
fig, axes = plt.subplots(2,1)
axes[0].imshow(im_bone)
axes[1].plot(hist)
format_and_render_plot()
Редактировать и запускать код