Aplikování masky
Masky jsou sice binární, ale lze je aplikovat na obrázky a filtrovat tak pixely, kde má maska hodnotu False.
Flexibilním způsobem, jak masky aplikovat, je funkce where() z NumPy. Přijímá tři argumenty:
np.where(condition, x, y)
condition, x a y mohou být pole nebo jednotlivé hodnoty. Díky tomu můžeš zachovat původní hodnoty pixelů a maskované pixely nastavit na 0.
Pojďme si aplikování masek procvičit – vybereme pixely připomínající kost z rentgenového snímku ruky (im).
Toto cvičení je součástí kurzu
Biomedical Image Analysis in Python
Pokyny k cvičení
- Vytvoř booleovskou masku kostí výběrem pixelů s hodnotou větší nebo rovnou 145.
- Aplikuj masku na snímek pomocí
np.where(). Pixely mimo masku nastav na0. - Vytvoř histogram maskovaného snímku. Použij následující argumenty pro výběr pouze nenulových pixelů:
min=1,max=255,bins=255. - Vykresli maskovaný snímek a histogram. Tento krok je již hotový za tebe.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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()