2012-03-22 2 views
0

내 응용 프로그램에서 특정 좌표로 이미지를 자른 경우 opencv를 사용했지만 왼쪽 측면의 좌표를 이동할 때 문제가 발생하여 위쪽 측면 이었기 때문에 변경 내용을 이해할 수 없었습니다.Opencv cvSetImageROI 좌표 문제

//assignment of calculates ration between view resolution and resolution of the photograph 
double scaleX = (outPutImage.frame.size.width/newCoordRect.imgWidth); 
double scaleY = (outPutImage.frame.size.height/newCoordRect.imgHeight); 

//assignment of the values after calculates coordinates 
int x = newCoordRect.leftUp.x/(scaleX); 
int y = newCoordRect.leftUp.y/(scaleY); 

int heigth = ((newCoordRect.rightDown.y-newCoordRect.rightUp.y)/scaleY); 
int width = ((newCoordRect.rightDown.x-newCoordRect.leftUp.x)/scaleX); 

/* load image */ 
IplImage *img1 = [[ShareFunction sFunction]CreateIplImageFromUIImage:outPutImage.image]; 

/* sets the Region of Interest 
Note that the rectangle area has to be __INSIDE__ the image */ 
cvSetImageROI(img1, cvRect(x, y, width, heigth)); 

/* create destination image 
Note that cvGetSize will return the width and the height of ROI */ 
IplImage *img2 = cvCreateImage(cvGetSize(img1), 
           img1->depth, 
           3); 

/* copy subimage */ 
cvCopy(img1, img2, NULL); 

/* always reset the Region of Interest */ 
cvResetImageROI(img1); 

retCropImg = [[ShareFunction sFunction]UIImageFromIplImage:img2]; 

어떤 아이디어가 있습니까?

+0

저는 C 태그가 작물이나 자르기보다 훨씬 적합하다고 생각합니다. 또한 추종자가 훨씬 많습니다. 다시 태그를 지정하십시오. – karlphillip

+0

ok thx하지만 이미 솔루션을 찾았습니다. 내 uiimage를 회전시키고 그 작업을해야했습니다. – Eliann

답변

0

코드가 맞는 것 같습니다. 이미지의 방향을 살펴보십시오