备注
前往结尾 下载完整示例代码。或者通过 Binder 在浏览器中运行此示例。
插值:边缘模式#
此示例展示了在插值过程中可用的不同边缘模式,例如在 skimage.transform.rescale()
和 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()
脚本的总运行时间: (0 分钟 0.086 秒)