pypy.com/

Python、Unity、FX自動化などを勉強しています。あと、コーラと車も好きです。そこらへんについて、たまに記事を書きます。

Pythonで画像を反転させる(OpenCV・cv2)

こんにちは。

今回は、pythonでopencvを使って、画像を反転させる方法について書きます。

前回の画像を回転させる方法については、以下からアクセスできるので、良かったら参考にしてください。

それでは書いていきます。

画像を左右に反転

ここでは、画像を左右に反転させます。
opencvでは、cv2.flip()を用いて、回転をすることができます。
左右の反転の場合は、第2引数に1を指定します。
コードを書くと以下のようになります。

import cv2
import matplotlib.pyplot as plt

# 画像の読み込み
img = cv2.imread("test.jpg")
# BGRからRGBへの変換
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 画像を左右に反転
img_flip_lr = cv2.flip(img, 1)
# matplotlibを使って、表示
fig,ax = plt.subplots(1,2)
ax[0].imshow(img)
ax[0].set_title("original")
ax[0].axis("off")
ax[1].imshow(img_flip_lr)
ax[1].set_title("flip lr image")
ax[1].axis("off")
plt.show()

これを、実行すると、以下のように表示されます。
うまく左右に反転できていることが確認できます。

画像を上下に反転する

ここでは、画像を上下に反転させます。
先ほどと同様に、cv2.flip()を用います。
上下の反転の場合は、第2引数に0を指定します。
コードは以下のようになります。

import cv2
import matplotlib.pyplot as plt

# 画像の読み込み
img = cv2.imread("test.jpg")
# BGRからRGBへの変換
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 画像を上下に反転
img_flip_ud = cv2.flip(img, 0)
# matplotlibを使って、表示
fig,ax = plt.subplots(1,2)
ax[0].imshow(img)
ax[0].set_title("original")
ax[0].axis("off")
ax[1].imshow(img_flip_ud)
ax[1].set_title("flip lr image")
ax[1].axis("off")
plt.show()

これを実行すると、以下のようになります。
上下に反転できていることがわかります。

画像を上下左右に反転する

ここでは、画像を上下左右両方に反転させます。
使うメソッドは、同じくcv2.flip()です。
上下左右ともに反転する場合は、第2引数に-1を指定します。
コードは以下のようになります。

import cv2
import matplotlib.pyplot as plt

# 画像の読み込み
img = cv2.imread("test.jpg")
# BGRからRGBへの変換
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 画像を上下左右に反転
img_flip_ud_lr = cv2.flip(img, -1)
# matplotlibを使って、表示
fig,ax = plt.subplots(1,2)
ax[0].imshow(img)
ax[0].set_title("original")
ax[0].axis("off")
ax[1].imshow(img_flip_ud_lr)
ax[1].set_title("flip lr ud image")
ax[1].axis("off")
plt.show()

コードを実行すると、以下のようになります。
うまく上下左右に反転できていることがわかります。

今回は以上で終わります。