더북(TheBook)

2×3 어파인 변환 행렬을 가지고 있을 때, 영상을 어파인 변환한 결과 영상을 생성하려면 warpAffine() 함수를 사용합니다. warpAffine() 함수 원형은 다음과 같습니다.

void warpAffine(InputArray src, OutputArray dst,
                InputArray M, Size dsize,
                int flags = INTER_LINEAR,
                int borderMode = BORDER_CONSTANT,
                const Scalar& borderValue = Scalar());

src

입력 영상

dst

결과 영상. src와 같은 타입이고, 크기는 dsize에 의해 결정됩니다.

M

2×3 어파인 변환 행렬

dsize

결과 영상 크기

flags

보간법 알고리즘. 만약 OR 연산자를 이용하여 WARP_INVERSE_MAP 플래그를 함께 지정하면 역방향으로 변환을 수행합니다.

borderMode

가장자리 픽셀 확장 방식. BorderTypes 열거형 상수 중 하나를 지정합니다. 만약 BORDER_TRANSPARENT를 지정하면 입력 영상의 픽셀 값이 복사되지 않는 영역은 dst 픽셀 값을 그대로 유지합니다.

borderValue

borderModeBORDER_CONSTANT일 때 사용할 상수 값. 기본값으로 검은색이 지정되어 있습니다.

 

warpAffine() 함수는 src 영상을 어파인 변환하여 dst 영상을 생성합니다. 이때 전달되는 어파인 변환 행렬 M은 CV_32FC1 또는 CV_64FC1 타입이어야 하고, 크기는 2×3이어야 합니다. 어파인 결과 영상의 크기 dsize는 어파인 변환 성격에 따라 사용자가 적절하게 지정해야 하며, dsize 인자에 Size()를 전달하면 입력 영상과 같은 크기의 결과 영상을 생성합니다. warpAffine() 함수는 일곱 개의 인자를 가지고 있지만 세 개는 기본값을 가지고 있으므로 처음 네 개 인자만 지정하여 사용할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.