더북(TheBook)

영상의 상하 대칭 변환도 비슷한 방식으로 생각할 수 있으며, 수식으로 정리하면 다음과 같습니다.

이 수식에서 h는 입력 영상의 세로 크기를 의미합니다.

OpenCV는 영상의 대칭 변환을 수행하는 flip() 함수를 제공합니다. flip() 함수는 영상을 가로 방향, 세로 방향, 또는 가로와 세로 양 방향에 대해 대칭 변환한 영상을 생성합니다. flip() 함수 원형은 다음과 같습니다.

void flip(InputArray src, OutputArray dst, int flipCode);

src

입력 영상

dst

결과 영상. src와 같은 크기, 타입

flipCode

대칭 방법 지정 플래그. flipCode가 양수이면 좌우 대칭, 0이면 상하 대칭, 음수이면 상하 대칭과 좌우 대칭을 모두 수행합니다.

 

flip() 함수는 src 영상을 대칭 변환하여 결과 영상 dst를 생성합니다. 이때 대칭 방법은 flipCode 인자의 부호에 따라 결정됩니다. 일반적으로 영상을 좌우로 대칭 변환하려면 flipCode에 1을 지정하고, 상하 대칭 변환하려면 0을 지정합니다. 그리고 상하 대칭과 좌우 대칭을 모두 수행하려면 flipCode에 -1을 지정합니다. 참고로 상하 대칭과 좌우 대칭을 모두 수행한 결과 영상은 입력 영상을 180° 회전한 결과와 같습니다.

flip() 함수를 이용하여 영상을 대칭 변환하는 예제 코드를 코드 8-6에 나타냈습니다. 코드 8-6의 affine_flip() 함수는 영상을 좌우 대칭, 상하 대칭, 상하 및 좌우 대칭을 수행한 결과를 화면에 출력합니다. affine_flip() 함수가 정의된 소스 파일과 사용된 영상 파일은 내려받은 예제 파일 중 ch08/affine 프로젝트에서 확인할 수 있습니다.

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