Python : 画像の回転 角度指定Opencv
PythonのOpencvを使った画像の回転方法についてです。
角度を指定して回転する方法で、
OpencvのgetRotationMatrix2DとwarpAffine変換を使ってやります。
まずはopencvの読み込みを行います。
import cv2
その後、画像を読み込み、今回は画像の中心を指定するので
画像の中心を読み込むために、画像のサイズを読み込みます。
frame = cv2.imread('lena_angle.jpg')
h,w,c = frame.shape
今回使う画像も前にfilpの反転で使わせていただいたLenaさんです。
中心を指定
center = (int(w/2),int(h/2))
回転角を指定
angle = 45
スケールを指定
scale = 1
その後、getRotationMatrix2D関数を使い、変更する条件を入れ込みます。
カッコの中は(回転の中心、角度、スケール)
trans = cv2.getRotationMatrix2D(center, angle , scale)
アフィン変換をします。
カッコの中は(回転させる画像、回転の条件、サイズ)
frame_45 = cv2.warpAffine(frame, trans, (w,h))
画像を保存します。
cv2.imwrite('angle_45.jpg',frame_45)
下記が全プログラムです。
#モジュールの読み込み
import cv2
#画像を読み込む
frame = cv2.imread('lena_angle.jpg')
#画像のサイズ読み込み
h,w,c = frame.shape
#回転の中心を指定
center = (int(w/2),int(h/2))
#回転角を指定
angle = 45
#スケールを指定
scale = 1
#getRotationMatrix2D関数を使用
trans = cv2.getRotationMatrix2D(center, angle , scale)
#アフィン変換
frame_45 = cv2.warpAffine(frame, trans, (w,h))
#画像を保存
cv2.imwrite('angle_45.jpg',frame_45)
今までにpythonについて書いた記事はここにリンクを貼ってあります。
興味があればぜひご覧ください。