matplotlib.pyplot: 保存图像时去除白边并保持相同大小
我知道之前有一些人问过这个问题,但他们提供的解决方案对我来说似乎不管用。下面我给出了一些链接,也许对你有帮助。
正如问题标题所描述的,我使用以下代码来处理这个问题。
plt.imshow(img)
plt.axis('off')
plt.savefig('seg_missi5.png', bbox_inches='tight')
plt.show()
我希望保存的图片没有空白,并且和原始图片的大小一样。
我尝试使用 print img.shape
来查看 img
的大小,它显示 (342, 548, 3)
,这和原始图片是一样的。但是保存的图片却不是,它的大小是 438 x 675
,比原来的大,并且有空白。
2 个回答
1
你可以试试用 pad_inches=0
这个设置。
plt.savefig('seg_missi5.png', bbox_inches='tight', pad_inches=0)
默认的大小是0.1。你可以从这个链接获取更多信息: http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.savefig
2
可以说,matplotlib可能不是实现这个目标的最佳工具(虽然确实可以做到)。我建议使用Python图像库作为替代。使用这个库,你可以像这样保存你的图片:
from PIL import Image
im = Image.fromarray(np.uint8(img))
im.save('outfile.png', "PNG")