\

アフィン変換とは

アフィン変換は、画像のスケーリング、回転、並進など、2次元空間での線形変換と並進変換を組み合わせたものです。OpenCVでは、cv2.warpAffine()関数を使用してアフィン変換を適用できます。

cv2.warpAffine()の使用方法

cv2.warpAffine()関数は、第1引数に変換を行う画像を指定し、第2引数で変換行列を、第3引数で変換後の出力する画像のサイズを指定します。

dst = cv2.warpAffine(src, M, (w, h))

ここで、srcは入力画像、Mはアフィン変換行列、(w, h)は出力画像のサイズです。

アフィン変換の例

以下に、画像の拡大縮小と回転を行うアフィン変換の例を示します。

import cv2
import numpy as np

# 画像を読み込む
img = cv2.imread("sample.jpg")
h, w = img.shape[:2]

# 拡大縮小のアフィン変換行列を作成
M_scale = np.array([[2, 0, 0], [0, 2, 0]], dtype=float)

# 画像にアフィン変換行列を適用する
dst = cv2.warpAffine(img, M_scale, (w * 2, h * 2))

# 回転のアフィン変換行列を作成
center = w / 2, h / 2
M_rot = cv2.getRotationMatrix2D(center=center, angle=30, scale=1)

# 画像にアフィン変換行列を適用する
dst = cv2.warpAffine(img, M_rot, (w, h))

このように、PythonとOpenCVを使用すると、簡単に画像に対してアフィン変換を適用することができます。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です