「実験で撮影した大量の画像を一括回転補正したい。」
このページでは、こんな悩みを解決するために、Python&OpenCVを使ってフォルダ内にある複数の画像を、
こんな感じで一括回転する方法をご紹介していきます。
(新しくフォルダを作って、その中に保存するようにしています。)
回転角度も自由に設定可能です。
あなたのやりたいことと一致していればぜひ続きをご覧ください。
※Python(無料のプログラミング言語)のインストール~実行方法までは以下で解説しています。
必要なライブラリ一覧
まずは必要なライブラリ一覧をご紹介します。
〇openCV
〇numpy
〇os
〇glob
インストールしていないものがあればまずはインストール作業から始めましょう。
※Anacondaを使っている人はopenCV以外はインストールされているはずです。
openCVについては以下に参考記事を載せておきます。
フォルダ構成の紹介
以降で紹介するサンプルコード(rotation.py)は、以下のようにこれから回転させたい画像フォイルが置いてある場所と同じところに保存しています。
このフォルダに新しくフォルダを作り、その新しいフォルダに回転後の画像を保存していくようにします。
フォルダ内画像を一括回転させるサンプルコード
それでは本題である、画像を一括回転させるサンプルコードをご紹介します。
#ライブラリのインポート
import cv2
import numpy as np
import os
import glob
#新しいフォルダ名
new_fol='new_pic'
#新しいフォルダを作成
os.makedirs(new_fol, exist_ok=True)
#画像ファイル一覧を取得
pics=glob.glob('*.jpg')
#回転角度を指定
rot_angle=45
#画像回転処理開始
for pic in pics:
pic1=cv2.imread(pic,cv2.IMREAD_COLOR)
h,w=pic1.shape[:2]
ROT= cv2.getRotationMatrix2D(center=(w/2,h/2),angle=rot_angle,scale=1)
pic1 = cv2.warpAffine(pic1,ROT,dsize=(w,h))
cv2.imwrite(new_fol+'/'+pic,pic1)
サンプルコードの実行結果
それでは先ほどのサンプルコードを実行してみます。
もとのフォルダにnew_picというフォルダが作成されています。
その中身を確認してみましょう。
問題なくすべて回転していますね。
おわりに
というわけで今回はpython-openCVを使って、フォルダ内にある画像を一括回転させる方法をご紹介しました。
実験データ解析の際などにぜひご活用ください。
なお、補正角度を算出する際は、以下の記事のやり方が便利です。
こちらもあわせてご覧ください。
【python-openCV】画像内を3点クリック⇒なす角を計算する方法!
このように、私のブログでは様々なスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村
それではまた!
Follow @HigashiSalary
コメント