シームレスなピクセル操作のために PIL イメージを NumPy 配列に変換するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-24 08:59:12
オリジナル
156 人が閲覧しました

How to Convert PIL Images to NumPy Arrays for Seamless Pixel Manipulation?

ピクセル操作を強化するために PIL イメージを NumPy 配列に変換する

質問:

PIL イメージを効率的に変換するにはどうすればよいですかシームレスなピクセル単位の変換のために NumPy 配列に変換しますか? PIL イメージから NumPy 配列への変換は numpy.array(pic.getdata()) を使用することで簡単に行えますが、変更された配列を PIL イメージとして再ロードする逆の操作はそれほど直感的ではありません。

回答:

変更された NumPy 配列から PIL イメージを正常に更新する鍵は、予想されるデータ形式を理解することにあります。最初に、numpy.array(pic.getdata()) を使用して画像から配列を取得すると、結果の行列は 2 次元 (行と列) になります。ただし、ピクセルを効率的に操作するには、行、列、および RGB 値を含む 3 次元配列が必要です。

解決策:

この問題を解決するには、次の手順を実行します。

  1. PIL イメージを NumPy 配列に変換します: numpy.array(pic) を使用して、目的の形式の 3 次元 NumPy 配列を取得します。
  2. NumPy 配列のピクセルの編集: NumPy 配列で必要なピクセル単位の変更を実行します。
  3. PIL イメージ内の変更された NumPy 配列を更新します:元のピクセルを変更された値で置き換えるか、pic.putdata(pix) を使用するか、Image.fromarray(pix) を使用して新しい PIL 画像を作成します。

追加メモ:

  • NumPy 配列への変更が適切な色の範囲内で行われていることを確認してください (例: 8 ビット RGB イメージの場合は 0 ~ 255)。
  • NumPy 配列を PIL イメージに変換するには、期待される形式に合わせて配列を再形成または平坦化する必要がある場合があります。

以上がシームレスなピクセル操作のために PIL イメージを NumPy 配列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート