我试着读入一系列的.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')
有没有关于如何去除填充物的提示?我做了一些谷歌搜索,但到目前为止我还没有发现任何有用的东西。在
在
^{1}$plt.savefig()
之前添加以下行:可以在不使用matplotlib的情况下进行阈值设置:
^{1}$这样,您就不必定义以英寸为单位的图形大小和DPI等等。您只需将PIL图像转换为numpy数组,进行一些运算,然后再转换回PIL图像。在
相关问题 更多 >
编程相关推荐