코드 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) 형태로 지정하였습니다.