受此post的启发(从带有枕头的阵列中绘制图像。)
我尝试过
diamond = np.array([[ 0, 0, 0, 0, 255, 0, 0, 0, 0],
[ 0, 0, 0, 255, 0, 255, 0, 0, 0],
[ 0, 0, 255, 0, 0, 0, 255, 0, 0],
[ 0, 255, 0, 0, 0, 0, 0, 255, 0],
[255, 0, 0, 0, 0, 0, 0, 0, 255],
[ 0, 255, 0, 0, 0, 0, 0, 255, 0],
[ 0, 0, 255, 0, 0, 0, 255, 0, 0],
[ 0, 0, 0, 255, 0, 255, 0, 0, 0],
[ 0, 0, 0, 0, 255, 0, 0, 0, 0]], dtype=uint8)
size = 36
my_dpi = mpl.rcParams['figure.dpi']
plt.subplots(figsize=(size/my_dpi, size/my_dpi))
plt.axis('off')
img = Image.fromarray(diamond, 'L')
img.resize((size,size)).save('diamond.ppm')
plt.imshow(img)
到目前为止,一切正常。
每个doc“ 1”代表(1位像素,黑白,每字节存储一个像素)
使用模式“ 1”替换“ L”会输出此图像
预期输出应为
那是为什么?
答案 0 :(得分:1)
转换为模式1
是一种解决方法
size = 36
my_dpi = mpl.rcParams['figure.dpi']
plt.subplots(figsize=(size/my_dpi, size/my_dpi))
plt.axis('off')
img = Image.fromarray(diamond, 'L').convert('1')
img.resize((size,size)).save('diamond.ppm')
plt.imshow(img)