2015年3月18日水曜日

[Python][PIL] PILを使ってAutoCrop(余白削除)

# -*- coding:utf-8 -*-
import Image, ImageChops
import numpy as np

image = Image.open('cropped.jpg')

# getpixel(0, 0) で左上の色を取得し、背景色のみの画像を作成する
bg = Image.new(image.mode, image.size, image.getpixel((0, 0)))

# 背景色画像と元画像の差分を取得
diff = ImageChops.difference(image, bg)
#diff.show()
diff = ImageChops.add(diff, diff, 2.0, -100)
#diff.show()
# 黒背景の境界Boxを取り出す
bbox = diff.getbbox()
# 少し余白を付ける
offset=30
bbox2 = (bbox[0] - offset, bbox[1] - offset, bbox[2] + offset, bbox[3] + offset)
# 元画像を切り出す
cropped = image.crop(bbox)
cropped.save('cropped_edge.jpg')
cropped = image.crop(bbox2)
cropped.save('cropped_edge_offset.jpg')
元画像

ギリギリで切り出し

少し余白を付けて切り出し

0 件のコメント:

コメントを投稿