Interpolation
L'interpolation consiste à estimer de nouvelles intensités de pixels lorsqu'on applique une transformation d'image. Dans SciPy, elle est implémentée à l'aide de familles de fonctions splines.
La modification du paramètre order de l'interpolation lors de l'utilisation d'une fonction comme ndi.zoom() ajuste l'estimation obtenue : des ordres plus élevés offrent des estimations plus souples, mais sont plus coûteux en calcul.
Dans cet exercice, suréchantillonnez im et observez l'effet de différents ordres d'interpolation sur l'image résultante.
Cet exercice fait partie du cours
<cours>Analyse d'images biomédicales en Python</cours>Instructions de l’exercice
- Utilisez
ndi.zoom()pour suréchantillonnerimd'une forme128, 128à512, 512à deux reprises. Commencez avec unorderd'interpolation de 0, puis définissezorderà 5. - Affichez les formes des tableaux
imetup0. - Tracez des agrandissements des images. Utilisez l'intervalle d'indices
128:256le long de chaque axe.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Upsample "im" by a factor of 4
up0 = ndi.zoom(____, zoom=____, order=____)
up5 = ____
# Print original and new shape
print('Original shape:', ____)
print('Upsampled shape:', ____)
# Plot close-ups of the new images
fig, axes = plt.subplots(1, 2)
axes[0].imshow(up0[128:256, 128:256])
axes[1].imshow(____)
format_and_render_plots()