Python : Opencv 画像の反転 filp
画像の上下左右反転についてです。
先週ぐらいから3Dカメラを扱っており、
すったもんだやっているのですが、
その際同僚からカメラの左右反転しているということがあり、
調べたところ、opencv の中にfilpという関数があったので、この紹介です。
カメラを使って撮影する際に、
鏡みたいな使い方をする場合は重宝しますね!
後、flipというのは辞書では裏返すという意味です。プログラムをやっていると英語で来た方がいいんだろうな〜ってちょっと思うことが多々あるので勉強しようかな〜ってちょっと思っていたりします。
本題の使い方としては、まずはモジュールを読み込みます。
import cv2
次に変更する画像を読み込みます。
frame = cv2.imread('lena_angle.jpg')
いつも使うlenaさんに勝手ながら角度の数字を入れさせていただきました。
後はfilpという関数を使います。
書き方としては
変更後の画像の名前 = cv2.flip(変更前の画像,-1~1)
この数字ですが0,1,-1があり、
0が上下反転
1が左右反転
-1が上下左右反転です。
実際に書くのは下記のようになり
上下反転
yframe = cv2.flip(frame, 0)
左右反転
xframe = cv2.flip(frame, 1)
上下左右反転
xyframe = cv2.flip(frame, -1)
プログラムは下記になります。
#モジュールの読み込み
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)