Programming/Image Processing

[OpenCV] IplImage 이미지 회전 함수구현

DevMonster 2014. 2. 21. 12:09

이미지의 Channel에 따라서 if문을 사용유무를 결정하면 된다.
그리고 이미지 단순 회전은 cv2DRotationMatrix 함수에서 
90-degreedegree로 변환하면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void rotateImage(const IplImage* src, IplImage* dst, double degree)
{
    // Only 1-Channel
    if(src->nChannels != 1)
        return;
 
    CvPoint2D32f    centralPoint    = cvPoint2D32f(src->width/2, src->height/2);            // 회전 기준점 설정(이미지의 중심점)
    CvMat*            rotationMatrix    = cvCreateMat(2, 3, CV_32FC1);                        // 회전 기준 행렬
 
    // Rotation 기준 행렬 연산 및 저장(90도에서 기울어진 각도를 빼야 본래이미지(필요시 수정))
    cv2DRotationMatrix(centralPoint, 90-degree, 1, rotationMatrix);
 
    // Image Rotation
    cvWarpAffine(src, dst, rotationMatrix, CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS);
 
    // Memory 해제
    cvReleaseMat(&rotationMatrix);
}


함수호출방법

1
rotateImage(src, dst, degree);


728x90
반응형