더북(TheBook)

코드 8-3 영상의 전단 변환 [ch08/affine]

01    void affine_shear()
02    {
03        Mat src = imread("tekapo.bmp");
04     
05        if (src.empty()) {
06            cerr << "Image load failed!" << endl;
07            return;
08        }
09     
10        double mx = 0.3;
11        Mat M = Mat_<double>({ 2, 3 }, { 1, mx, 0, 0, 1, 0 });
12     
13        Mat dst;
14        warpAffine(src, dst, M, Size(cvRound(src.cols + src.rows * mx), src.rows));
15     
16        imshow("src", src);
17        imshow("dst", dst);
18     
19        waitKey();
20        destroyAllWindows();
21    }

 

10~11행 가로 방향으로 밀림 정도를 0.3으로 설정한 전단 변환 행렬 M을 생성합니다.

14행 행렬 M을 이용하여 어파인 변환을 수행합니다. 전단 변환에 의해 입력 영상의 일부가 잘리지 않도록 결과 영상 가로 크기를 cvRound(src.cols + src.rows * mx) 형태로 지정하였습니다.

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