2015年3月18日水曜日

[Python][OpenCV]画像の上下左右を削除(trim)する

# -*- coding:utf-8 -*-
import cv2

img = cv2.imread('BunkoSample_noise.jpg')
height, width = img.shape[:2]

offset = 100
# 開始座標
x = offset # 横座標(左起点)
y = offset # 縦座標(上起点)
# crop する画像サイズ
w = width - offset * 2
h = height - offset * 2
crop_img = img[y:y+h, x:x+w]
# IMWRITE_JPEG_QUALITY を指定しない時 (default) と quality = 95 は同じサイズになる
cv2.imwrite('cropped_default.jpg', crop_img)
cv2.imwrite('cropped_95.jpg', crop_img, [cv2.IMWRITE_JPEG_QUALITY, 95])
cv2.imwrite('cropped_75.jpg', crop_img, [cv2.IMWRITE_JPEG_QUALITY, 75])
cv2.imwrite('cropped_60.jpg', crop_img, [cv2.IMWRITE_JPEG_QUALITY, 60])
cv2.imwrite('cropped_50.jpg', crop_img, [cv2.IMWRITE_JPEG_QUALITY, 50])
cv2.imwrite('cropped_30.jpg', crop_img, [cv2.IMWRITE_JPEG_QUALITY, 30])
元画像(左上と右下にゴミ線が入っている)

上下左右を100dotずつ削った結果

出力されたファイルサイズ
$ ls -l
-rw-rw-r-- 1 xxxx xxxx 283451  3月 18 13:58 BunkoSample_noise.jpg
-rw-rw-r-- 1 xxxx xxxx 238097  3月 18 22:59 cropped_30.jpg
-rw-rw-r-- 1 xxxx xxxx 277427  3月 18 22:59 cropped_50.jpg
-rw-rw-r-- 1 xxxx xxxx 296614  3月 18 22:59 cropped_60.jpg
-rw-rw-r-- 1 xxxx xxxx 341120  3月 18 22:59 cropped_75.jpg
-rw-rw-r-- 1 xxxx xxxx 575140  3月 18 22:59 cropped_95.jpg
-rw-rw-r-- 1 xxxx xxxx 575140  3月 18 22:59 cropped_default.jpg

0 件のコメント:

コメントを投稿