皆さんは画像をトリミングしたい時どうしていますか。
数が少なければ一つ一つ処理していけば良いですが、トリミング量を揃えたりしていると意外に時間がかかるものです。
そこで、本記事ではプログラミング初心者向けにPythonを使ったサンプル例を紹介します。
エクセルやパワーポイント、それ以外のソフトでもトリミングする事ができますが、
Pythonはコードの中身がシンプルで初心者でも見よう見まねでやってみると形になると思います。
下記ファイルと同じフォルダ内にある画像データ(デフォルト:jpg)を一気にトリミングしていくプログラム例です。
出力ファイル名はnameで指定+連番となる(例:test-out0, test-out1, test-out2,・・・)
§トリミング前画像
§トリミング後画像
★部分を変えてサイズや余白を調整
width=横のサイズ
height=縦のサイズ
left=左の余白
upper=上の余白
righgt=右の余白
lower=下の余白
from PIL import Image
import os, glob
import matplotlib.pyplot as plt
path = './'
name ='test-out'
i = 0
def crop_center(pil_img, crop_width, crop_height, left, top, right,down):
img_width, img_height = pil_img.size
return pil_img.crop(((img_width - crop_width + left) // 2,
(img_height - crop_height +top) // 2,
(img_width + crop_width + right) // 2,
(img_height + crop_height + down) // 2))
for infile in glob.glob( os.path.join(path, '*.jpg') ):
imgname= name + str(i)
i = i +1
im = Image.open(infile)
#plt.figure(figsize=(57, 57))# トリミング前の解像度を変えたい時
im_new = crop_center(im, 450, 1200,70,680,-70,-710) #★
#★部分の数値意味(width,height,left, upper, right, lower)
plt.tick_params(labelbottom="off",bottom="off") # x軸の削除
plt.tick_params(labelleft="off",left="off") # y軸の削除
plt.box("off") #枠線の削除
plt.axis('off') #枠線の削除
plt.imshow(im_new)
plt.savefig(imgname + '.jpg', bbox_inches="tight", pad_inches=0.0)
★Pythonは機械学習やAI作成でよく使われる言語です。
勉強でおすすめする本についても紹介しています。
【資格取得におすすめ】機械学習・AI・ディープラーニングについて理解できる本ランキング
今回は機械学習・AI・ディープラーニングについて理解できる本を紹介します。
日本ディープラーニング協会が主催するG検定の資格取得での勉...