画像の反転 cv2.flip()



画像を反転する方法を紹介します。

開発環境はjupyter notebook、言語はpythonです。

今回使用した画像・コード一式はgoogle driveにも保存しておりますので、必要に応じてお使いください。

作成したコード

#モジュールのインポート
import cv2
import glob
import os
from PIL import Image

#画像の読み込み
filename = glob.glob("*.jpg")

for n in range(len(filename)):
    img = cv2.imread(filename[n])
    img_horizontalflip = cv2.flip(img,1) #左右反転
    img_verticalflip = cv2.flip(img,0) #上下反転
    img_horizontal_vertical = cv2.flip(img,-1) #上下左右反転
    cv2.imwrite(os.path.split(filename[n])[1][:-4]+"_horizontal.png",img_horizontalflip)
    cv2.imwrite(os.path.split(filename[n])[1][:-4]+"_vertical.png",img_verticalflip)
    cv2.imwrite(os.path.split(filename[n])[1][:-4]+"_horizontal_vertical.png",img_horizontal_vertical)

処理の解説

反転はcv2.imreadで読み込んだ画像に対してcv2.flip()と書くだけで実施できます。
反転する向きは、第二引数の値によって決めることができます。

第二引数 < 0:上下左右反転
第二引数 = 0:上下反転
第二引数 > 0:左右反転

反転は行列をひっくり返すだけなので、処理も簡単です。

深層学習のデータ拡張にも使う技術なので、覚えて損はないです。

今回使用した画像:さなだのつけ麺

北千住駅の近くにあるつけ麺屋さんのつけ麺です。
ラーメン雑誌にも掲載されるような人気店のようですね。
私が閉店時間ギリギリに行った時も、多くのお客さんでにぎわっていました。

コメント