从 3D Numpy 数组绘制红色通道
Plot Red Channel from 3D Numpy Array
假设我们有一个 RGB 图像,我们已使用以下代码将其转换为 Numpy 数组:
import numpy as np
from PIL import Image
img = Image.open('Peppers.tif')
arr = np.array(img) # 256x256x3 array
如果我们只对可视化红色通道感兴趣,即 arr[:,:,0]
,我们如何绘制这个 2D Numpy 数组?
可以使用matplotlib的imshow():
import matplotlib.pyplot as plt
imgplot = plt.imshow(arr[:, :, 0])
查看更多示例 here,用于插值、颜色条等
例如,要更改颜色图,您可以执行 imgplot.set_cmap('hot')
。
将插值设置为 'nearest'
也很有用,如果你真的不想插值:查看差异
t = np.array([[0, 1, 2], [1, 2, 3], [3, 2, 1]])
import matplotlib.pyplot as plt
plt.imshow(t)
plt.show()
plt.imshow(t, interpolation='nearest')
plt.show()
结果
和
假设我们有一个 RGB 图像,我们已使用以下代码将其转换为 Numpy 数组:
import numpy as np
from PIL import Image
img = Image.open('Peppers.tif')
arr = np.array(img) # 256x256x3 array
如果我们只对可视化红色通道感兴趣,即 arr[:,:,0]
,我们如何绘制这个 2D Numpy 数组?
可以使用matplotlib的imshow():
import matplotlib.pyplot as plt
imgplot = plt.imshow(arr[:, :, 0])
查看更多示例 here,用于插值、颜色条等
例如,要更改颜色图,您可以执行 imgplot.set_cmap('hot')
。
将插值设置为 'nearest'
也很有用,如果你真的不想插值:查看差异
t = np.array([[0, 1, 2], [1, 2, 3], [3, 2, 1]])
import matplotlib.pyplot as plt
plt.imshow(t)
plt.show()
plt.imshow(t, interpolation='nearest')
plt.show()
结果
和