こんにちは。
今回は、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()
コードを実行すると、以下のようになります。
うまく上下左右に反転できていることがわかります。
今回は以上で終わります。