Använd en mask
Även om masker är binära kan de appliceras på bilder för att filtrera bort pixlar där masken är False.
NumPys funktion where() är ett flexibelt sätt att använda masker. Den tar tre argument:
np.where(condition, x, y)
condition, x och y kan vara antingen arrayer eller enskilda värden. Det gör det möjligt att behålla de ursprungliga bildvärdena och samtidigt sätta maskerade värden till 0.
Låt oss öva på att använda masker genom att välja ut benliknande pixlar från handens röntgenbild (im).
Den här övningen är en del av kursen
Biomedicinsk bildanalys i Python
Övningsinstruktioner
- Skapa en boolesk benmask genom att välja pixlar som är större än eller lika med 145.
- Applicera masken på bilden med
np.where(). Värden som inte ingår i masken ska sättas till0. - Skapa ett histogram över den maskerade bilden. Använd följande argument för att välja ut enbart pixlar som inte är noll:
min=1,max=255,bins=255. - Plotta den maskerade bilden och histogrammet. Det är redan gjort åt dig.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()