PythonのPillowの使い方を現役エンジニアが解説【初心者向け】
初心者向けにPythonのPillowの使い方について現役エンジニアが解説しています。PillowはPythonで画像処理を行う場合に用いられるライブラリで、他にOpenCVがあります。Pillowを使ってPythonで画像を回転させたりサイズを変更したり、グレースケール(白黒)にしたり、保存したりしてみましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
監修してくれたメンター
nakamoto
PythonのPillowの使い方について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
Pillowを学習していただくことで、Pythonを利用して画像の取り込み、保存、表示処理などを行えます。
実務でもPillowを利用して画像サイズを統一するなど、よく利用するのでぜひ学習してみてくださいね。
目次
そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
PythonのPillowの使い方について詳しく説明していくね!
お願いします!
Pillowとは
Pillow(PIL)は画像処理ライブラリの1つです。
Pythonには画像処理を行うことのできるライブラリがいくつかあり、よく使われるものとしてOpenCVと今回紹介するPillowがあります。
OpenCVは処理の内容にはよるものの、高度な画像処理に利用します。
PillowはOpenCVに比べ、単純な操作や基本的な操作を行うことができ初心者向きです。
自分の好みやしたい処理に合わせて使うライブラリを変えてみましょう。
Pillowのインストール方法
Pillowを使うにはインストールする必要があります。
それぞれの開発環境に応じて、コマンドを利用したインストールが可能です。
一般的なPython環境
pip install Pillow
Anaconda環境
Anacondaをインストールすると、Pythonでよく利用されるライブラリ(パッケージ)のインストールや設定が整った環境を利用可能です。
Anacondaの解説記事も参考にしてみてください。
conda install Pillow
Pillowの使い方
続いて、Pillowの使い方をみていきます。
Pillowをプログラムで使うには、ライブラリの中の必要なモジュールをインストールする必要があります。
ここからは、画像の読み込み・拡大縮小・回転・色の変換・保存の方法についてふれていきましょう。
使用画像
今回利用する画像はテックアカデミーのロゴ画像です。
コマンド例
from PILでPillowからモジュールをインストールを行うことを明示します。
import モジュール名で、使用するモジュールのインストールを行います。
from PIL import モジュール名1, モジュール名2
前処理
今回は画像操作を行うにあたり、Pillowとmatplotlibという2つのライブラリを利用します。
サンプルコード
from PIL import Image
import matplotlib.pyplot as plt
%matplotlib inline
解説
1行目のfrom PIL import Imageでは、PillowからImageモジュールをインポートします。
2行目のimport matplotlib.pyplot as pltでは、matplotlibライブラリのpyplotモジュールをインポートして、pltという名称で利用できるようにします。
3行目の%matplotlib inlineでは、表示処理をアウトプット行出力に設定することで、画像をグラフ描写するような感じで表示できます。
画像の読み込み
画像の読み込みは、Imageモジュールのopen()関数を使います。
読み込んだ画像を扱う変数を用意して、以下の通り実行します。
img = Image.open(画像ファイルのあるパス)
画像がちゃんと読み込めたかどうかは、show()メソッドを使って利用中のOSにインストールされている、標準ソフトで表示されます。
img.show()
表示結果
画像の加工、表示
画像の大きさを取得して拡大、縮小します。
画像の大きさを取得するには、size属性で行います。
サンプルコード
print(img.size)
表示結果
画像の大きさが表示できたら、自分の好きな大きさに変換します。
大きさの変換はresize()メソッドを使って以下の通り定義し、サイズを指定して変換しましょう。
img_resize = img.resize((横の大きさ, 縦の大きさ))
サンプルコード
img_resize = img.resize((50,50))
plt.imshow(img_resize)
表示結果
続いて、画像を回転させます。
画像の回転はrotate()メソッドで時計回りに回転する角度を指定して行いましょう。
今回は90度回転させます。
サンプルコード
img_rotate = img.rotate(90)
plt.imshow(img_rotate)img_rotate = img.rotate(90)
表示結果
画像処理の最後に、色を白黒に変換していきます。
convert()メソッドを使って白黒にしましょう。
引数に’L’を指定するのは、画像を白黒(モノクロ)にするためです。
引数に’L’を指定するだけだと、白黒のデータにできますが表示は白黒になりません。
そのためimshowメソッドに、cmap=”gray”という引数を指定することで白黒表示が可能になります。
サンプルコード
img_convert = img.convert('L')
plt.imshow(img_convert, cmap="gray")
表示結果
画像の保存
処理した画像を保存する場合、下記のように記述します。
img.save(保存したい場所のパス)
Pillowの詳しい使い方については、英語の公式ドキュメントを参照してみましょう。
実際に書いてみよう
ここでは、プログラムを書いて確認してみましょう。
適当な画像ファイルを用意して、そのファイルのパスを取得してください。
そして、以下のプログラムを実行しましょう。
サンプルコマンド
サンプルコマンドを順番に実行していくことで、画像の読み込み・加工・保存を行うことが可能です。
ライブラリのインポート
from PIL import Image
import matplotlib.pyplot as plt
%matplotlib inline
画像の読み込み
img = Image.open('/content/techacademy.png')
plt.imshow(img)
画像サイズの変更
img_resize = img.resize((50,50))
plt.imshow(img_resize)
画像の回転
img_rotate = img.rotate(90)
plt.imshow(img_rotate)img_rotate = img.rotate(90)
画像の白黒化
img_convert = img.convert('L')
plt.imshow(img_convert, cmap="gray")
画像の保存
img_convert.save('/convert.png')
実行結果
まとめ
この記事では、PythonのPillowと呼ばれる画像処理ライブラリの基本的な使い方について解説しました。
Pillowでは他にも様々な処理を行うことができるため、行いたい処理に応じて公式ドキュメントなどを参考にして使用してみましょう。
執筆してくれたメンター
中本賢吾(なかもとけんご) アジマッチ有限会社 代表取締役社長開発実績:PHPフレームワークによるフランチャイズ企業向け会員制SNS。Shopifyによる海外進出用大規模ネットショップ構築。Vue.jsによる金融機関向け内部アプリ。AWSやLinuxハウジングサーバでの環境構築。人工知能を利用した画像判別システム。小売チェーン店舗用スマホアプリ。WordPressによる不動産チェーン店向け賃貸・売買仲介システム。基幹システム移管用データコンバートシステム。ボランティア活動:小学生がオリジナルAndroidアプリをGoogle Playでリリース、NHK Whyプログラミング入賞、全国Programming Festival入賞、中学生がSNS型PWAアプリリリースする市クラブ講座活動を行っている。 |
PythonのPillowの使い方が分かりやすくて良かったです!
ゆかりちゃん、これからも分からないことがあったら質問してね!
分かりました。ありがとうございます!
Pythonを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPythonコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、人工知能(AI)や機械学習の基礎を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!