Застосуйте маску
Хоч маски й бінарні, їх можна застосовувати до зображень, щоб відфільтрувати пікселі, де маска дорівнює False.
Функція NumPy where() — гнучкий спосіб застосування масок. Вона приймає три аргументи:
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()