首页 > 解决方案 > 如何在 matplotlib 中保留原始图像质量

问题描述

我正在尝试使用 matplotlib 对原始图像进行一些修改。这是一个可复制的代码:

fig, ax = plt.subplots(figsize=(7.68, 10.24))
img = matplotlib.image.imread(img_path)
ax.imshow(img)
plt.xticks([])
plt.yticks([])
plt.savefig('try.png')

但是,即使返回相同的分辨率,在此过程之后图像质量也会下降。保存图像时如何保持图像质量?

以下是示例: 正如您所见,标量在处理后变得无法识别。在此处输入图像描述 在此处输入图像描述

标签: pythonmatplotlibvisualization

解决方案


您需要创建一个轴以占用图中可用的整个空间,并创建一个具有正确尺寸的图:

img = plt.imread('caOkv.jpg', format='JPG')
h,w,_ = img.shape
dpi = 100
fig = plt.figure(figsize=(w/dpi, h/dpi), dpi=dpi)
ax = fig.add_axes([0,0,1,1])
ax.axis('off')
ax.imshow(img)

推荐阅读