![](/img/trans.png)
[英]Matplotlib - unable to save image in same resolution as original image
[英]Matplotlib: How to save an image at full resolution?
我創建了一個馬賽克圖像,這樣一張大圖片由許多小圖片組成。 我可以在 matplotlib 查看器中很好地查看此圖像,並且可以放大以查看所有小圖片。 但是當我保存圖像時,無論擴展名如何,圖像都會失去縮放能力,以至於放大時微小的圖像變得模糊。有沒有辦法以全分辨率保存圖像? 我有一個 numpy 數組中的 rgb 圖像,所以如果有其他更合適的庫也可以使用。
這應該工作:
from PIL import Image
Image.fromarray(numpy_img).save("img_path.png")
我認為您在這里被 Windows 的照片應用程序誤導了,如果您放大太多,它會自動應用模糊。
Matplotlib 使用所有像素值正確保存圖像,您可以通過再次縮放加載圖像的像素來檢查它。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
# save image
array = np.random.random((4000, 4000, 3))
plt.imsave("save.png", array)
# load image
img = mpimg.imread("save.png")
plt.imshow(img)
plt.show()
另一種選擇是我編寫的名為numpngw
的小型庫。 如果 numpy 數組是img
(形狀為 (m, n, 3) 的 8 位或 16 位無符號整數數組),則可以使用:
from numpngw import write_png
write_png('output.png', img)
(如果數組是浮點數,則必須將值轉換為無符號整數。PNG 文件格式不存儲浮點值。)
你可以試試imageio庫: https ://imageio.readthedocs.io/en/stable/userapi.html#imageio.imwrite
from imageio import imwrite
imwrite("image.png", array)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.