python保存圖片的四個常用方法
前言
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的數(shù)組形式,色彩空間為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)
參數(shù):
- tensor:4D張量,形狀為(B x C x H x W),分別表示樣本數(shù),通道數(shù),圖像高度,圖像寬度
- nrow:每行的圖片數(shù)量,默認值為8
- padding:相鄰圖像之間的間隔。默認值為2
- normalize:如果為True,則把圖像的像素值通過range指定的最大值和最小值歸一化到0-1。默認為False
- range:元組,用于指定最大值和最小值。默認使用圖像像素的最大最小值。
- sacle_each:如果為True,就單獨對每張圖像進行normalize;如果是False,統(tǒng)一對所有圖像進行normalize。默認為Flase
- pad_value:float,上述padding會使得圖像之間留出空隙,默認為0

matplotlib 擴展:
1.圖像縮放、顯示
from scipy import misc
lena_new_sz = misc.imresize(img, 0.5) # 第二個參數(shù)如果是整數(shù),則為百分比,如果是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') # 讀取前面保存的數(shù)組注意: np.array數(shù)據(jù)可以通過np.save函數(shù)直接保存在磁盤上,擴展名為.npy, 通過np.load函數(shù)直接恢復; scipy.misc提供了對numpy.array格式圖像的處理函數(shù),特別是misc.imsave函數(shù)可以直接將np.array數(shù)據(jù)保存成圖像文件。
總結
到此這篇關于python保存圖片的四個常用方法的文章就介紹到這了,更多相關python保存圖片方法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
pytest實戰(zhàn)技巧之參數(shù)化基本用法和多種方式
本文介紹了pytest參數(shù)化的基本用法和多種方式,幫助讀者更好地使用這個功能,同時,還介紹了一些高級技巧,如動態(tài)生成參數(shù)名稱、參數(shù)化的組合和動態(tài)生成參數(shù)化裝飾器,幫助讀者更靈活地使用參數(shù)化,感興趣的朋友參考下吧2023-12-12
Django 允許局域網(wǎng)中的機器訪問你的主機操作
這篇文章主要介紹了Django 允許局域網(wǎng)中的機器訪問你的主機實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
Python socket實現(xiàn)多對多全雙工通信的方法
今天小編就為大家分享一篇Python socket實現(xiàn)多對多全雙工通信的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02
Python中unittest模塊做UT(單元測試)使用實例
這篇文章主要介紹了Python中unittest模塊做UT(單元測試)使用實例,本文直接給出待測試的類、測試類和測試結果以及測試總結,需要的朋友可以參考下2015-06-06

