【Python】画像加工のやり方
記事の監修者
1000万PVを超える新規メディアの立ち上げを開発責任者として行う。株式会社ウィルゲートを退社後、民泊の運用代行業者のTwistを設立し上場企業に売却。2016年株式会社Market Drive(現テックアイエス)を設立し、取締役副社長に就任。200万ダウンロードを超えるアプリを開発。現在はプログラミングスクールのカリキュラム制作も担当。現場でのエンジニアリングと経営の両面を支えている。
Pillowについて
PillowはPythonプログラム内で画像を読み込むためのベースとなるライブラリです。
https://pillow.readthedocs.io/en/stable/
今回は基礎の操作である以下の3つの手順を試してみましょう。
①画像の読み込み
②画像をグレースケールのモノクロ画像へ変換
③画像の保存
①画像の読み込み
pillowを利用するためにインポートを行います、また画像の表示に利用するためにMatplotlibのpyplotもインポートしています。
次に加工したい画像を用意し、コードが置いてある階層と同じ場所に格納します。
今回は富士山のフリー画像をpillowで読み込みを行います。
読み込んだ画像を表示したい場合は、引数に画像を指定しmatplotlib.pyplotの plt.imshow() を実行することで、グラフと同じような形式で画像を表示できます。
②画像をグレースケールのモノクロ画像へ変換
Pillowのオブジェクトが持つ convert() を実行し、mount_fuji.jpg の画像をモノクロ画像へ変換します。
convert() の引数に “L” と入力することで、モノクロの画像が作成されます。
また先ほどのようにplt.imshow() を実行することでグレースケール化した画像を出力することが出来ますが、そのままだと、色合いが正しく表示されません。
これはMatplotlibのデフォルトのカラーマップ設定によるものです。
モノクロ画像の場合、色味が暗いほど青く、明るくなるにつれて 青 → 緑 → 黄色 の色味で表示されるという設定になっています。
そのため、正しく 黒 → グレー → 白 の色味でモノクロ画像を表示するには、imshow() に「カラーマップの設定」が必要です。
方法としては imshow() に cmap=”gray” というキーワード引数を追記するだけです。
③画像の保存
加工した画像を保存するなら save() を使います。ファイルにつけたい名前を、引数として指定することになります。
ここでは mount_fuji_gray.png というファイル名にしました。
なお、imshow() と違って save() で保存する場合は、特別な指定をしなくても正しいモノクロの画像として保存されます。
これでモノクロの富士山の写真(mount_fuji.png)が mount_fuji.png と同じディレクトリに保管されました。
グレースケールとモノクロの違い
モノクロとは「monochrome(モノクローム)」の略になります。
この言葉の意味は「単色」「1つの色」となり、黒を指している言葉ではありません。
一般的には、モノクロは白と黒で表現されているものという認識になります。
ただし、本来は1色で表現されているものはモノクロとなります。
一方で、グレースケールとは、白と黒の中間色であるグレーの濃淡(グラデーション )を、254階調で表したものになります。
白黒とは異なり、豊かな階調で表現されますので、使っている色は黒1色でも豊かな表現が可能です。
写真やイラストなどがあり綺麗に印刷したい場合はグレースケールを選択すると良いでしょう
全国どこにいても学べる!超優良のプログラミングスクールまとめました【国内完全網羅】現役エンジニアが厳選したおすすめのプログラミングスクール
自分の住んでるエリアでプログラミングスクールを探したい⭐️
エリア別で、おすすめのプログラミングスクールをまとめました。
ぜひ参考にしてみてくださいね。
北海道 / 東北
関東
群馬 / 栃木 / 埼玉 / 茨城 / 東京 / 千葉 / 神奈川
中部
福井 / 石川 / 岐阜 / 愛知 / 富山 / 長野 / 山梨 / 静岡 / 新潟
近畿
兵庫 / 京都 / 大阪 / 滋賀 / 奈良 / 三重 / 和歌山