1. ホーム
  2. パイソン

cv2.getPerspectiveTransform パースペクティブ変換

2022-03-01 10:17:30
<スパン はじめに
透視変換とは、画像を新しい表示平面に投影することであり、Projection Mappingとも呼ばれる。図1のように、透視変換ABCはA'B'C'に変換されます。

<スパン 機能プロトタイプ
1 cv2.getPerspectiveTransform(src, dst) → retval

パラメータの説明
  • src: ソース画像内の計測したい矩形の4点の座標
  • sdt: ターゲット画像における矩形の4点座標
ソース画像中の矩形からターゲット画像中の矩形への変換行列を返します.
行列を取得するために役に立つ必要があります
ということは、次のような関数が導かれる。
1 cv2.warpPerspective(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) → dst

パラメータは
  • src: 入力画像
  • M: 変換行列
  • dsize: ターゲット画像の形状
  • flags: 補間方法, 補間方法 INTER_LINEAR または INTER_NEAREST
  • borderMode: ボーダー補正方法、BORDER_CONSTANT または BORDER_REPLICATE
  • borderValue: ボーダー補正の大きさ、定数、デフォルトは0
または
1 cv2.perspectiveTransform(src, m[, dst]) → dst

パラメータの説明
  • src: 入力された2チャンネルまたは3チャンネルの画像
  • m: 変換行列
返される画像は同じサイズです
区別
<強い
warpPerspectiveは画像に適用される。 perspectiveTransformは点の集合に適用される。
<スパン を使用します。
 1 import cv2 as cv
 2 import numpy as np
 3 img = cv.imread("test/scene2.png",0)
 4 w,h = img.shape
 5 point1 = np.array([[308,230],[500,230],[308,640],[500,640]],dtype = "float32")
 6 point2 = np.array([[308,230],[500,230],[155,30],[835,30]],dtype = "float32")
 7 M = cv.getPerspectiveTransform(point1,point2)
 8 out_img = cv.warpPerspective(img,M,(w,h))
 9 cv.imshow("img",out_img)
10 cv.waitKey(0)

取得元:https://www.cnblogs.com/aoru45/p/9763983.html