这不是一个重复的问题。我已经处理了执行一些OpenCV函数后得到的图像。我想用1000 dpi保存该文件但它不能正常工作
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
plt.rcParams['savefig.dpi'] = 1000
#Then after some processing
mask = plt.read(mask)
plt.axis('off')
plt.imshow(mask,cmap='gray')
plt.savefig('D:/newapproach/T&Oplt.jpg',dpi=1000,bbox_inches='tight')
plt.show()
文件以96 dpi保存,无论我指定为dpi
答案 0 :(得分:1)
问题中的代码运行正常。您可以通过简单地查看宽度和高度(以像素为单位)来验证,如果您没有更改图形大小,则应该在~4000的范围内(从上面的代码中不知道)。
请注意,即使所有内容都按预期工作,某些图像查看器以及操作系统的属性对话框也可能显示96dpi。这主要是因为dpi实际上不是像素图像的合理数字。像素图像仅由像素数定义,并且本质上不具有与它们相关联的dpi。
您可能拥有的选项是使用PIL打开保存的图像并再次保存,直接指定dpi:
import numpy as np
import matplotlib.pyplot as plt
mask = np.random.rand(30,30)
plt.axis('off')
plt.imshow(mask,cmap='gray')
plt.savefig('figure.jpg',dpi=300,bbox_inches='tight')
from PIL import Image
im = Image.open('figure.jpg')
im.save('figure.jpg',dpi=[300,300])
plt.show()