Python : Opencv 画像の反転 filp

画像の上下左右反転についてです。

先週ぐらいから3Dカメラを扱っており、

すったもんだやっているのですが、

その際同僚からカメラの左右反転しているということがあり、

調べたところ、opencv の中にfilpという関数があったので、この紹介です。

 

カメラを使って撮影する際に、

鏡みたいな使い方をする場合は重宝しますね!

 

後、flipというのは辞書では裏返すという意味です。プログラムをやっていると英語で来た方がいいんだろうな〜ってちょっと思うことが多々あるので勉強しようかな〜ってちょっと思っていたりします。

 

本題の使い方としては、まずはモジュールを読み込みます。

import cv2

次に変更する画像を読み込みます。

frame = cv2.imread('lena_angle.jpg')

いつも使うlenaさんに勝手ながら角度の数字を入れさせていただきました。

f:id:Kangkang1981:20200425115816j:plain

 

後はfilpという関数を使います。

書き方としては

変更後の画像の名前 = cv2.flip(変更前の画像,-1~1)

この数字ですが0,1,-1があり、

0が上下反転

1が左右反転

-1が上下左右反転です。

実際に書くのは下記のようになり

上下反転
yframe = cv2.flip(frame, 0)

f:id:Kangkang1981:20200425123403j:plain

左右反転
xframe = cv2.flip(frame, 1)

 

f:id:Kangkang1981:20200425123430j:plain

上下左右反転
xyframe = cv2.flip(frame, -1)

f:id:Kangkang1981:20200425123444j:plain

 

プログラムは下記になります。

#モジュールの読み込み

import cv2



#画像を読み込む

frame = cv2.imread('lena_angle.jpg')



#上下反転

yframe = cv2.flip(frame, 0)

#左右反転

xframe = cv2.flip(frame, 1)

#上下左右反転

xyframe = cv2.flip(frame, -1)



#画像を保存

cv2.imwrite('y_frame.jpg',yframe)

cv2.imwrite('x_frame.jpg',xframe)

cv2.imwrite('xy_frame.jpg',xyframe)

    

今までにpythonについて書いた記事はここにリンクを貼ってあります。 興味があればぜひご覧ください。