Python OpenCVを使用して画像を回転する方法

PythonでOpenCVを使って画像を回転させたい場合、OpenCVのgetRotationMatrix2D、warpAffine関数を使用します。

getRotationMatrix2D 関数は、画像の回転するアフィン変換行列の計算に利用され、回転中心、回転角およびスケーリング係数の 3 つのパラメータを引数として受け取ります。例えば、画像を90度時計回りに回転させるためには、次のコードで回転行列を取得することができます。

import cv2

img = cv2.imread('image.jpg')
rows, cols = img.shape[:2]
center = (cols / 2, rows / 2)
angle = 90
scale = 1.0

M = cv2.getRotationMatrix2D(center, angle, scale)

すると、warpAffine関数で画像を回転できます。これは3つの引数を受け取ります。回転させる画像、回転行列、出力画像のサイズです。回転行列はgetRotationMatrix2D関数で取得できます。例えば、画像を90度回転させて回転後の画像を出力したい場合は、次のコードを使用できます。

import cv2

img = cv2.imread('image.jpg')
rows, cols = img.shape[:2]
center = (cols / 2, rows / 2)
angle = 90
scale = 1.0

M = cv2.getRotationMatrix2D(center, angle, scale)
rotated_img = cv2.warpAffine(img, M, (cols, rows))

cv2.imwrite('rotated_image.jpg', rotated_img)

回転後の画像をrotated_image.jpgというファイル名で保存します。

bannerAds