본문 바로가기
배워보자!!/Opencv

[Opencv] Iplimage 이미지 회전

by norinda 2018. 11. 27.
728x90

이번에는 이미지를 회전하는거다

IplImage에 이미지를 로드한후

설정한 값만큼 이미지를 회전해 주는 것이다.

아래 

angle 값을 수정해 회전하는 각도를 정해주면 된다.

scale값을 이용해 크기 변화도 가능하다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    CString FilePath = "";
    CString curWindowName = "window";
    CString RWindowName = "rotation";
    IplImage *loadIplImage;
    IplImage *rotationmage;
    loadIplImage = cvLoadImage("./image/hand.jpg");
 
    rotationmage = cvCreateImage(cvSize(loadIplImage->width , loadIplImage->height),IPL_DEPTH_8U , loadIplImage->nChannels);
 
    double angle = 45;
    double scale = 1;
    CvMat *matrix = cvCreateMat(2,3,CV_32FC1);
    cv2DRotationMatrix(cvPoint2D32f(loadIplImage->width / 2 , loadIplImage->height/2) , angle , scale , matrix);
    cvWarpAffine(loadIplImage , rotationmage , matrix , CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS , cvScalarAll(0));
 
    cvNamedWindow(curWindowName,1);        //영상을 표시할 윈도우를 생성(0/1)
    cvNamedWindow(RWindowName,1);        //영상을 표시할 윈도우를 생성(0/1)
    cvShowImage(curWindowName,loadIplImage);    //윈도우에 출력
    cvShowImage(RWindowName,rotationmage);    //윈도우에 출력
    cvWaitKey(0);                        //프로그램의 동작을 잠시 멈추고 사용자로부터 키 입력을 기다린다.
 
    cvReleaseImage(&loadIplImage);        //할당된 메모리 공간을 해제한다.
    cvDestroyWindow(curWindowName);        //윈도우를 닫고, 윈도우를 위해 동적할당된 메모리 공간을 모두 해제한다. 
cs


반응형

댓글