Apabila bekerja dengan transformasi berasaskan piksel, kelajuan dan fleksibiliti tatasusunan NumPy selalunya boleh menjadi kelebihan berbanding PixelAccess PIL. Artikel ini menunjukkan cara untuk menukar Imej PIL kepada tatasusunan NumPy dan belakang dengan cekap, membolehkan anda memanfaatkan keupayaan kedua-dua rangka kerja.
import PIL.Image import numpy as np pic = PIL.Image.open("foo.jpg") pix = np.array(pic.getdata()).reshape(pic.size[0], pic.size[1], 3)
Kod ini menukarkan Imej PIL ke dalam tatasusunan NumPy dengan dimensi (tinggi, lebar, saluran).
Dua pendekatan tersedia:
data = list(tuple(pixel) for pixel in pix) pic.putdata(data)
Ambil perhatian bahawa kaedah ini boleh menjadi perlahan untuk tatasusunan yang besar.
pix = np.array(pic) # Converts PIL Image to NumPy array # Make changes to the array pic = PIL.Image.fromarray(pix)
Kaedah ini secara amnya berfungsi lebih pantas dan merupakan pendekatan yang disyorkan untuk menukar tatasusunan NumPy kembali kepada Imej PIL.
Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar Imej PIL kepada NumPy Arrays dan Back?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!