Mat cv::getPerspectiveTransform(
    const Point2f src[],
    const Point2f dst[],
    int solveMethod = DECOMP_LU
)
Mat Cv2.GetPerspectiveTransform(
    IEnumerable<Point2f> src,
    IEnumerable<Point2f> dst
)
retval = cv2.getPerspectiveTransform(
    src,
    dst,
    solveMethod = None
)


원근 변환 행렬 계산식(Perspective Transform Matrix Formula): $$ \begin{bmatrix} {x_1}' \\ {y_1}' \\ {x_2}' \\ {y_2}' \\ {x_3}' \\ {y_3}' \\ {x_4}' \\ {y_4}' \end{bmatrix} = \begin{bmatrix} {x_1} & {y_1} & 1 & 0 & 0 & 0 & -{x_1}' \cdot {x_1} & -{x_1}' \cdot {y_1} \\ 0 & 0 & 0 & {x_1} & {y_1} & 1 & -{y_1}' \cdot {x_1} & -{y_1}' \cdot {y_1} \\ {x_2} & {y_2} & 1 & 0 & 0 & 0 & -{x_2}' \cdot {x_2} & -{x_2}' \cdot {y_2} \\ 0 & 0 & 0 & {x_2} & {y_2} & 1 & -{y_2}' \cdot {x_2} & -{y_2}' \cdot {y_2} \\ {x_3} & {y_3} & 1 & 0 & 0 & 0 & -{x_3}' \cdot {x_3} & -{x_3}' \cdot {y_3} \\ 0 & 0 & 0 & {x_3} & {y_3} & 1 & -{y_3}' \cdot {x_3} & -{y_3}' \cdot {y_3} \\ {x_4} & {y_4} & 1 & 0 & 0 & 0 & -{x_4}' \cdot {x_4} & -{x_4}' \cdot {y_4} \\ 0 & 0 & 0 & {x_4} & {y_4} & 1 & -{y_4}' \cdot {x_4} & -{y_4}' \cdot {y_4} \\ \end{bmatrix} \cdot \begin{bmatrix} a \\ b \\ c \\ d \\ e \\ f \\ g \\ h \end{bmatrix} $$
원근 변환 행렬(Perspective Transform Matrix): $$ \text{matrix} = \begin{bmatrix} a & b & e \\ c & d & f \\ g & h & 1 \end{bmatrix} $$


요약(Summary)

여덟 개의 좌표를 활용해 원근 변환 행렬을 생성합니다.

매개변수(Parameter)

변환 전 네 개의 픽셀 좌표(src) 원근 변환 행렬 생성을 위한 사각형 형태의 픽셀 기준 좌표

변환 후 네 개의 픽셀 좌표(dst) 원근 변환 행렬 생성을 위한 사각형 형태의 픽셀 기준 좌표

행렬 분해 방식(solveMethod) 원근 변환 행렬 분해 계산 방식

반환값(Returns)

원근 변환 행렬(retval) 3×3 원근 변환 행렬