如何在 matplotlib 中保留原始图像质量

How to preserve the original image quality in 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')

但是,即使 returns 分辨率相同,经过此过程后图像质量也有所下降。保存图片时如何保持画质?

示例如下: 如您所见,标量在处理后变得无法识别。

您需要创建一个坐标轴以获取图中可用的整个 space,并创建一个具有正确尺寸的图:

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)