首頁 > 軟體

python儲存圖片的四個常用方法

2022-02-28 13:05:19

前言

python中影象處理相關庫有很多,這裡簡單介紹PIL、cv2、scipy.imageio 、matplotlib.image、skimage等常用庫,其中PIL庫使用最方便,cv2庫功能最強大。下面分享儲存圖片的常用方法

1.PIL的儲存圖片方法

path = r"./001.jpg"     #圖片路徑
img = Image.open(path)  #開啟圖片
img.save("1.jpg")      #將圖片儲存為1.jpg

2.opencv儲存圖片

path = r"./001.jpg"     #圖片路徑
#img = cv.imdecode(np.fromfile("動漫人物_0.jpg",np.uint8))#含有中文路徑的圖片開啟
img = cv2.imread(path)  #讀取圖片
cv2.imwrite("1.jpg",img)  #將圖片儲存為1.jpg

3.Matplotlib儲存圖片的方法

import matplotlib.pyplot as plt
import cv2
import os

images_path = "./minist_img"

for i,img_name in enumerate(os.listdir(images_path)):
    img_path = os.path.join(images_path,img_name)
    img = cv2.imread(img_path)  #numpy的陣列形式,色彩空間為BGR
    img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #
    plt.subplot(2,2,i+1),plt.imshow(img)
plt.savefig("./minist.jpg")
plt.show()

4.pytorch儲存圖片

save_image(real_img,os.path.join(save_img,f"{epoch}_real.jpg"),nrow=10,padding=2,pad_value=255)

引數:

  1. tensor:4D張量,形狀為(B x C x H x W),分別表示樣本數,通道數,影象高度,影象寬度
  2. nrow:每行的圖片數量,預設值為8
  3. padding:相鄰影象之間的間隔。預設值為2
  4. normalize:如果為True,則把影象的畫素值通過range指定的最大值和最小值歸一化到0-1。預設為False
  5. range:元組,用於指定最大值和最小值。預設使用影象畫素的最大最小值。
  6. sacle_each:如果為True,就單獨對每張影象進行normalize;如果是False,統一對所有影象進行normalize。預設為Flase
  7. pad_value:float,上述padding會使得影象之間留出空隙,預設為0

matplotlib 擴充套件:

1.影象縮放、顯示

from scipy import misc
lena_new_sz = misc.imresize(img, 0.5) # 第二個引數如果是整數,則為百分比,如果是tuple,則為輸出影象的尺寸
plt.imshow(img_new_sz)
plt.axis('off')
plt.show()

2. 將np.array儲存為影象、直接儲存np.array

# 2.1 np.array=>image file
from scipy import misc
misc.imsave('img_new_sz.png', img_new_sz)
"""
from scipy import misc
# load image
lena = misc.imread('lena.png')
# <type 'numpy.ndarray'>
type(lena) 
# lena.shape, lena.dtype
"""

# 2.2 np.array=>np data file
import numpy as np
np.save('img_new_sz', img_new_sz) # 會在儲存的名字後面自動加上.npy
img = np.load('img_new_sz.npy') # 讀取前面儲存的陣列

注意: np.array資料可以通過np.save函數直接儲存在磁碟上,擴充套件名為.npy, 通過np.load函數直接恢復; scipy.misc提供了對numpy.array格式影象的處理常式,特別是misc.imsave函數可以直接將np.array資料儲存成影象檔案。

總結 

到此這篇關於python儲存圖片的四個常用方法的文章就介紹到這了,更多相關python儲存圖片方法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com