Python 實現Image和Ndarray互相轉換
阿新 • • 發佈:2020-02-20
如下所示:
import numpy as np from PIL import Image img = Image.open(filepath) img_convert_ndarray = np.array(img) ndarray_convert_img= Image.fromarray(img_convert_ndarray ) # np.array(object) 這個函式很強大啊,看原始碼裡面給的註釋 # object : array_like # An array,any object exposing the array interface,an object whose # __array__ method returns an array,or any (nested) sequence.
而keras裡面也有api來做這樣的轉換
from keras.preprocessing.image import img_to_array,array_to_img
然而檢視原始碼的時候,其實會發現這兩個函式仍然還是用同樣的方式實現
img_to_array() 是使用np.asarray(),而array_to_img是使用Image.fromarray()
多說一句,np.array()是建立一個ndarray,而np.asarray(object)是將一個object轉換成ndarray,但是
np.asarray(a): return np.array(a,copy=False) # 而np.array()裡copy預設為True,那這有什麼區別呢? import numpy as np a = np.array([1,2]) b = np.asarray(a) c = np.asarray(a) print(type(b),type(c),b is c) # True e = np.array(a) f = np.array(a) print(type(e),type(f),e is f) # False a = [1,2] b = np.asarray(a) c = np.asarray(a) print(type(b),b is c) # False e = np.array(a) f = np.array(a) print(type(e),e is f) # False
以上這篇Python 實現Image和Ndarray互相轉換就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。