38 lines
918 B
Python
38 lines
918 B
Python
"""
|
|
=========================
|
|
Interpolation: Edge Modes
|
|
=========================
|
|
|
|
This example illustrates the different edge modes available during
|
|
interpolation in routines such as :py:func:`skimage.transform.rescale`
|
|
and :py:func:`skimage.transform.resize`.
|
|
"""
|
|
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
|
|
|
|
img = np.zeros((16, 16))
|
|
img[:8, :8] += 1
|
|
img[:4, :4] += 1
|
|
img[:2, :2] += 1
|
|
img[:1, :1] += 2
|
|
img[8, 8] = 4
|
|
|
|
modes = ['constant', 'edge', 'wrap', 'reflect', 'symmetric']
|
|
fig, axes = plt.subplots(2, 3)
|
|
ax = axes.flatten()
|
|
|
|
for n, mode in enumerate(modes):
|
|
img_padded = np.pad(img, pad_width=img.shape[0], mode=mode)
|
|
ax[n].imshow(img_padded, cmap=plt.cm.gray)
|
|
ax[n].plot([15.5, 15.5, 31.5, 31.5, 15.5],
|
|
[15.5, 31.5, 31.5, 15.5, 15.5], 'y--', linewidth=0.5)
|
|
ax[n].set_title(mode)
|
|
|
|
for a in ax:
|
|
a.set_axis_off()
|
|
a.set_aspect('equal')
|
|
|
|
plt.tight_layout()
|
|
plt.show()
|