Pythonでいろいろやってみる

Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています。

2枚の画像を斜めにカットして貼り合わせる

2枚の写真を斜めにカットして貼り合わせます。pythonの画像処理ライブラリPillowのcompositeメソッドを使い、2枚の写真とマスク画像により合成画像を作成します。

環境
  • windows10 home
  • Anaconda 3/ jupyter notebook 5.6.0
  • Python 3.7.0
  • Pillow 5.2.0
準備

画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、jupyter notebookファイル(***.ipynb)と同じディレクトリに保存しました(画像サイズは2枚とも600x375)。

man.jpg
f:id:T_A_T:20200520202222j:plain

woman.jpg
f:id:T_A_T:20200520202243j:plain

コード

合成する2枚の画像と同じサイズの長方形の黒画像に白い台形のマスクを描き、2つの画像を合成します。

from PIL import Image, ImageDraw

img1 = Image.open('man.jpg')
img2 = Image.open('woman.jpg')

mask = Image.new('L', (600, 375), 0)
draw = ImageDraw.Draw(mask)
draw.polygon([(420, 0), (180, 375), (600, 375), (600, 0)], fill=255)

img = Image.composite(img1, img2, mask)
img.save('woman_and_man.jpg', quality=95)  
実行結果

f:id:T_A_T:20200520202951j:plain

以下のサイトを参考にさせていただきました

note.nkmk.me > Python, Pillowで二枚の画像をマスク画像に従って合成
Pythonの文法メモ > 【Pillow】ImageDrawモジュールによる直線、四角、円、多角形描画

ブログランキングに参加しています

にほんブログ村 IT技術ブログへ
にほんブログ村