从matplotlib savefig中删除空白

2024-09-27 23:16:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着读入一系列的.bmp图像,并根据我得到的提示做一些线性对比度调整。这些图片都很小,112x112,我想让它们看起来完全一样,除了对比度调整。我试过用matplotlib来做,但是不管我做什么,我都会在图像的边界周围得到空白。下面是我使用的代码:

# Open image and convert to array
oldImage = Image.open(f)
imageArray = np.array(oldImage)

# Preprocessing
vrange = stats.mquantiles(imageArray.flatten(),prob=[0.01,0.99])

# Plot and save
fig = plt.figure()
fig.set_size_inches(1,1)
fig.set_dpi(112)
plt.imshow(imageArray,cmap="gray",interpolation="Nearest",vmin=vrange[0],vmax=vrange[1]);
plt.axis('off')
plt.savefig(f[:-4] + "_adjusted.png", bbox_inches='tight')

有没有关于如何去除填充物的提示?我做了一些谷歌搜索,但到目前为止我还没有发现任何有用的东西。在


Tags: and图像matplotlibfig图片plt线性array
2条回答

plt.savefig()之前添加以下行:

^{1}$

可以在不使用matplotlib的情况下进行阈值设置:

^{1}$

这样,您就不必定义以英寸为单位的图形大小和DPI等等。您只需将PIL图像转换为numpy数组,进行一些运算,然后再转换回PIL图像。在

相关问题 更多 >

    热门问题