OpenCV(Python)を用いてディレクトリ内にある画像をリサイズする
開発環境は、Windows7 Professional(32bit) + Python 2.7.10。
imgディレクトリに画像を入れて、その画像のサイズをすべて、指定のサイズ(幅は250px、高さは幅に合わせて自動調整)へリサイズするスクリプトを作ります。縮小する前に、画像を平滑化すると、滑らかになります。
ディレクトリ構成
-test.py(下記のスクリプト) +img -test.jpg(適当な画像)
# -*- coding: utf-8 -*- import cv2 import numpy as np import glob arr = [] arr.extend(glob.glob("./img/*.jpeg")) arr.extend(glob.glob("./img/*.jpg")) arr.extend(glob.glob("./img/*.png")) for i in arr: img = cv2.imread(i) height, width = img.shape[:2] if width > 250: x = float(width) / 250 width = 250 height = int(height / x) img2 = cv2.GaussianBlur(img,(5,5),0) img2 = cv2.resize(img2,(width, height)) cv2.imwrite(i,img2)
■参考サイト
画像をリサイズする | OpenCV画像解析入門
[OpenCV Python]画像の幅、高さ、チャンネル数、depth取得 · atinfinity/lab Wiki · GitHub
Pythonでフォルダ内のファイルリストを取得する
要素の追加と連結(appendメソッド, extendメソッド) - リスト - Python入門
画像の平滑化 — OpenCV-Python Tutorials
Image Filtering — OpenCV 3.0.0-dev documentation