Pythonは画像処理に非常に優れたライブラリが豊富に揃っており、その中でも特に強力なのがOpenCVです。OpenCVは画像の読み込みや加工、保存など、さまざまな処理を簡単に実行できるため、初心者から上級者まで幅広く使用されています。
その中でも本記事では、PythonとOpenCVを使って画像を回転させる方法について見ていきます。
OpenCVのインストール
まずは、OpenCVをインストールしましょう。以下のコマンドをターミナルやコマンドプロンプトに入力してください。
pip install opencv-python
このコマンドで、PythonにOpenCVライブラリを追加することができます。
✓『OpenCVによる画像処理入門』で基礎の確認から応用した使い方まで学ぶことができます。本記事とあわせて、ぜひ、チェックしてください。
画像を読み込む
次に、画像を読み込む方法について説明します。今回は例として、"sample.png"という名前の画像を使用します。
sample.png:
コード:
import cv2 # 画像を読み込む image = cv2.imread('sample.png') # 画像を表示する cv2.imshow('Original Image', image) cv2.waitKey(0) cv2.destroyAllWindows()
上記のコードでは、OpenCVのimread
関数を使って画像を読み込み、imshow
関数でウィンドウに表示しています。waitKey(0)
はキー入力を待ち、destroyAllWindows
でウィンドウを閉じます。
実行例(sample.png):
画像を90度回転させる
次に、画像を90度回転させる方法を紹介します。回転にはrotate
関数を使用します。
コード:
import cv2 # 画像を読み込む image = cv2.imread('sample.png') # 画像を90度時計回りに回転させる rotated_image = cv2.rotate(image, cv2.ROTATE_90_CLOCKWISE) # 回転した画像を表示する cv2.imshow('Rotated Image 90', rotated_image) cv2.waitKey(0) cv2.destroyAllWindows()
このコードでは、cv2.ROTATE_90_CLOCKWISE
を指定することで画像を時計回りに90度回転させています。同様に、cv2.ROTATE_90_COUNTERCLOCKWISE
で反時計回りに90度回転させることもできます。
実行例(sample.png):
任意の角度で画像を回転させる
次に、任意の角度で画像を回転させる方法を解説します。この場合、少し複雑になりますが、getRotationMatrix2D
とwarpAffine
を組み合わせて使用します。
import cv2 # 画像を読み込む image = cv2.imread('sample.png') # 回転角度(度数法) angle = 45 # 画像の中心を計算 (h, w) = image.shape[:2] center = (w // 2, h // 2) # 回転行列を取得 M = cv2.getRotationMatrix2D(center, angle, 1.0) # 画像を回転 rotated_image = cv2.warpAffine(image, M, (w, h)) # 回転した画像を表示 cv2.imshow('Rotated Image 45', rotated_image) cv2.waitKey(0) cv2.destroyAllWindows()
このコードでは、45度の角度で画像を回転させています。getRotationMatrix2D
関数を使って回転行列を取得し、warpAffine
でその行列を適用しています。この方法を使えば、自由な角度で画像を回転させることができます。
実行例:
回転した画像を保存する
最後に、回転させた画像を保存する方法を紹介します。回転した画像を別名で保存したい場合は、imwrite
関数を使用します。
コード:
# 回転した画像を保存 cv2.imwrite('rotated_sample.png', rotated_image)
このコードを実行すると、"rotated_sample.png"という名前で回転した画像が保存されます。
関連・おすすめ書籍
まとめ
本記事では、PythonとOpenCVを使って画像を回転させる方法について解説しました。90度の固定回転から、任意の角度での回転まで、さまざまなケースに対応できることが分かります。
このように、OpenCVは非常に強力なライブラリであり、これを使いこなすことで画像処理の幅が大きく広がります。ぜひ、今回の内容を参考にして、さらなる画像処理に挑戦してみてください。
▼必見(ChatGPTを活用!おすすめAI副業)▼
今なら5000円分の特典あり!! dodgsonblog.com