더북(TheBook)

앞 수식에서 (x, y)는 입력 영상의 픽셀 좌표이고, (x′, y′)는 결과 영상의 픽셀 좌표입니다. 앞 수식을 행렬을 이용하면 다음과 같이 하나의 식으로 표현할 수 있습니다.

앞 수식에서 입력 영상의 좌표를 나타내는 행렬 앞의 2×2 행렬과 그 뒤에 더해지는 2×1 행렬을 합쳐서 하나의 2×3 행렬을 구성하면 이동 변환을 나타내는 어파인 변환 행렬을 만들 수 있습니다. 즉, 영상을 x 방향으로 a만큼, y 방향으로 b만큼 이동하는 어파인 변환 행렬 M은 다음과 같습니다.

그러므로 OpenCV에서 영상을 이동 변환하려면 앞과 같은 형태의 2×3 실수 행렬 M을 만들고, 이를 warpAffine() 함수 인자로 전달합니다.

실제로 이동 변환을 위한 2×3 어파인 변환 행렬을 생성하여 영상을 이동 변환하는 예제 코드를 코드 8-2에 나타냈습니다. 코드 8-2의 affine_translation() 함수는 tekapo.bmp 호수 영상을 가로로 150픽셀, 세로로 100픽셀만큼 이동시키고 그 결과를 화면에 출력합니다. affine_translation() 함수가 정의된 소스 파일과 사용된 영상 파일은 내려받은 예제 파일 중 ch08/affine 프로젝트에서 확인할 수 있습니다.

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