Pythonでいろいろやってみる

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

フォルダ内の画像に自動で枠線をつける

下地が白い画像を貼ると境界が分からないので枠線を付けたくなりますが手動ではうまいやり方がありません。そこでフォルダ内のすべての画像に指定した色で枠線を付けます。

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

画像ファイルはいらすとやからダウンロードさせていただき、jupyter notebookファイル(***.ipynb)と同じディレクトリの内に'photo'フォルダを作りその中に保存しました。 f:id:T_A_T:20200308133708p:plain

コード
import os
from PIL import Image, ImageDraw

color = (0, 128, 0)   # 枠線の色(R,G,B)で指定
dir_path = 'photos/'  # 画像ファイルのあるフォルダの相対パス
files = os.listdir(dir_path)  # フォルダ内のファイルのリスト生成
# ファイル名を1つずつ取り出して処理
for i in files:     
    im = Image.open(dir_path + i)
    w, h = im.size
    draw = ImageDraw.Draw(im)
    draw.rectangle((0, 0, w-1, h-1), outline = color)
    filename = i.split('.')[0]
    file_ext = i.split('.')[1]
    im.save(dir_path + filename + '_frame.' + file_ext)
実行結果

画像に枠線がつけられます。
f:id:T_A_T:20200308133721p:plain

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

Pythonの文法メモ > 【Pillow】ImageDrawモジュールによる直線、四角、円、多角形描画

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

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