在處理基於像素的轉換時,NumPy 陣列的速度和靈活性通常比PIL 的PixelAccess 更有優勢。本文示範如何有效率地將 PIL 影像轉換為 NumPy 陣列並返回,使您能夠利用這兩個框架的功能。
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)
此程式碼將 PIL 影像轉換為具有尺寸(高度、寬度、通道)的 NumPy 陣列。
有兩種方法可用:
data = list(tuple(pixel) for pixel in pix) pic.putdata(data)
請請注意,對於大型數組,此方法可能會很慢。
pix = np.array(pic) # Converts PIL Image to NumPy array # Make changes to the array pic = PIL.Image.fromarray(pix)
此方法通常執行速度較快,是將NumPy 陣列轉換回PIL 影像的建議方法。
以上是如何有效率地將 PIL 影像轉換為 NumPy 陣列並返回?的詳細內容。更多資訊請關注PHP中文網其他相關文章!