9.4.1 좌우 대칭

    영상의 좌우 대칭 변환은 말 그대로 영상의 좌우를 서로 뒤바꾸는 변환이다. 좌우 대칭 변환의 결과 영상은 그 크기가 입력 영상의 크기와 동일하다. 입력 영상의 좌표 (x, y)는 다음과 같은 수식의 형태로 결과 영상에서의 좌표 (x´, y´)에 매핑된다.

    앞의 식에서 w는 입력 영상의 가로 크기를 나타낸다.

    그림 9-27은 실제 영상에 대하여 좌우 대칭 변환을 수행한 결과를 보여준다. 그림 9-27(a)는 입력 영상인 child.bmp 파일이고, 그림 9-27(b)는 좌우 대칭 변환을 수행한 결과 영상이다.

    그림 9-27 영상의 좌우 대칭 변환 실행 결과
    (a)
    (b)

    소스 9-13은 좌우 대칭 변환을 구현한 IppMirror 함수의 전체 코드를 보여준다. 이 함수는 입력 영상 imgSrc에 대해 좌우 대칭 변환을 수행한 결과를 imgDst에 저장한다. IppMirror 함수의 선언은 IppGeometry.h 파일에 여러분이 스스로 입력하기 바란다.

    소스 9-13 좌우 대칭 변환 구현 함수(IppGeometry.cpp)
    void IppMirror(IppByteImage& imgSrc, IppByteImage& imgDst)
    {
        int w = imgSrc.GetWidth();
        int h = imgSrc.GetHeight();
    
        imgDst.CreateImage(w, h);
    
        BYTE** pSrc = imgSrc.GetPixels2D();
        BYTE** pDst = imgDst.GetPixels2D();
    
        int i, j;
        for (j = 0; j < h; j++)
        for (i = 0; i < w; i++)
        {
            pDst[j][i] = pSrc[j][w - 1 - i];
        }
    }
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.