ピクセルベースの変換を使用する場合、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 配列に変換します。
2 つのアプローチが利用可能です:
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 中国語 Web サイトの他の関連記事を参照してください。