欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python讀取和保存圖片5種方法對(duì)比

 更新時(shí)間:2018年09月12日 15:53:31   投稿:wdc  
為大家分享一下python讀取和保存圖片5種方法與比較,python中對(duì)象之間的賦值是按引用傳遞的,如果需要拷貝對(duì)象,需要用到標(biāo)準(zhǔn)庫中的copy模塊

python讀取和保存圖片5種方法對(duì)比

python中對(duì)象之間的賦值是按引用傳遞的,如果需要拷貝對(duì)象,需要用到標(biāo)準(zhǔn)庫中的copy模塊

方法一:利用 PIL 中的 Image 函數(shù)

這個(gè)函數(shù)讀取出來不是 array 格式,這時(shí)候需要用 np.asarray(im) 或者 np.array()函數(shù) 。

區(qū)別:np.array() 是深拷貝,np.asarray() 是淺拷貝

copy.copy 淺拷貝 只拷貝父對(duì)象,不會(huì)拷貝對(duì)象的內(nèi)部的子對(duì)象。

copy.deepcopy 深拷貝 拷貝對(duì)象及其子對(duì)象

例子:

import copy 
a = [1, 2, 3, 4, ['a', 'b']] #原始對(duì)象 
b = a #賦值,傳對(duì)象的引用 
c = copy.copy(a) #對(duì)象拷貝,淺拷貝 
d = copy.deepcopy(a) #對(duì)象拷貝,深拷貝 
a.append(5) #修改對(duì)象a 
a[4].append('c') #修改對(duì)象a中的['a', 'b']數(shù)組對(duì)象 
print 'a = ', a 
print 'b = ', b 
print 'c = ', c 
print 'd = ', d

輸出結(jié)果:

a = [1, 2, 3, 4, ['a', 'b', 'c'], 5]
b = [1, 2, 3, 4, ['a', 'b', 'c'], 5]
c = [1, 2, 3, 4, ['a', 'b', 'c']]
d = [1, 2, 3, 4, ['a', 'b']]

需要好好理解一下深拷貝和淺拷貝

from PIL import Image 
import numpy as np 
I = Image.open('./cc_1.png') 
I.show() 
I.save('./save.png') 
I_array = np.array(I) 
print I_array.shape

方法二:利用 matplotlib

利用 matplotlib.pyplot as plt 用于顯示圖片

matplotlib.image as mpimg 用于讀取圖片

并且讀取出來就是 array 格式

import matplotlib.pyplot as plt 
import matplotlib.image as mpimg 
import numpy as np 
I = mpimg.imread('./cc_1.png') 
print I.shape 
plt.imshow(I)

方法三:利用 OpenCV-Python 接口

cv2.imread() 讀出來同樣是 array 形式,但是如果是單通道的圖,讀出來的是三通道的。

import cv2 
I = cv2.imread('./cc_1.png') 
print I.shape

方法四:圖像處理庫 Scipy

圖像的存取筆者一般喜歡用 scipy 這個(gè)庫里的東西

讀出來是 array 形式,并且按照(H,W,C)形式保存

import matplotlib.pyplot as plt 
from scipy import misc 
import scipy 
I = misc.imread('./cc_1.png') 
scipy.misc.imsave('./save1.png', I) 
plt.imshow(I) 
plt.show()

方法五:用 skimage 庫

from skimage import io,data
img=data.lena()
io.imshow(img)

關(guān)于存儲(chǔ)方式主要用兩種:

當(dāng)對(duì)象是圖片時(shí),使用 object.save(path)函數(shù)

當(dāng)對(duì)象時(shí)二維數(shù)組時(shí),使用 misc.imsave(path,object)函數(shù)

python讀取圖片的5種方法使用非常簡單,大家可以在自己機(jī)器上測試一下

相關(guān)文章

  • python學(xué)習(xí)之matplotlib繪制散點(diǎn)圖實(shí)例

    python學(xué)習(xí)之matplotlib繪制散點(diǎn)圖實(shí)例

    這篇文章主要介紹了python學(xué)習(xí)之matplotlib繪制散點(diǎn)圖實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Python利用request庫實(shí)現(xiàn)翻譯接口

    Python利用request庫實(shí)現(xiàn)翻譯接口

    這篇文章主要為大家詳細(xì)介紹了Python如何利用request庫打造自己的翻譯接口,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-04-04
  • 學(xué)習(xí)python處理python編碼問題

    學(xué)習(xí)python處理python編碼問題

    概括從python開始就處理unicode字符,python源文件的編碼與解碼,我們寫的python程序從產(chǎn)生到執(zhí)行的過程如下
    2011-03-03
  • Python實(shí)現(xiàn)信用卡系統(tǒng)(支持購物、轉(zhuǎn)賬、存取錢)

    Python實(shí)現(xiàn)信用卡系統(tǒng)(支持購物、轉(zhuǎn)賬、存取錢)

    這篇文章主要介紹了Python實(shí)現(xiàn)信用卡系統(tǒng)(支持購物、轉(zhuǎn)賬、存取錢)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • Python中的shape[0]、shape[1]和shape[-1]使用方法

    Python中的shape[0]、shape[1]和shape[-1]使用方法

    shape函數(shù)是Numpy中的函數(shù),它的功能是讀取矩陣的長度,比如shape[0]就是讀取矩陣第一維度的長度,這篇文章主要介紹了Python中的shape[0]、shape[1]和shape[-1]使用方法,需要的朋友可以參考下
    2023-07-07
  • 最新評(píng)論