2012-01-31 5 views
1

ROI를 사용하여 이미지의 발견 된 다각형을 새 이미지로 복사하고 싶습니다. 이 다각형이 새 이미지에 정확히 들어 맞도록하고 싶습니다. 지금까지 ROI를 사용했지만 각도를 고려하지 않았기 때문에 감지 할 객체를 회전 시키 자마자 나쁜 결과를 낳습니다.OpenCV : 각도로 ROI를 설정 하시겠습니까?

while(/****/) 
{ 
    CvSeq* approximatedContour = cvApproxPoly(currentContour, 
               sizeof(CvContour), 
               0, 
               CV_POLY_APPROX_DP, 
               8); 

    etiquetteBox = cvMinAreaRect2(approximatedContour); 
    CvSize2D32f sizeEtiquette = etiquetteBox.size; 

    if(/****/) 
    { 
     CvPoint2D32f boxPoints[4]; 
     cvBoxPoints(etiquetteBox, boxPoints); 

     cvSetImageROI(thresImg,cvRect((int)boxPoints[1].x, (int)boxPoints[1].y, 
         (int)sizeEtiquette.width,(int)sizeEtiquette.height)); 

     cvResize(thresImg,thresImgResized); 

     /*****/ 
    } 

사람이 투자 수익 (ROI)에 각도를 통합하는 방법을 알고 있나요 : 나는 여기

내가하는 일입니다 ... 추가 분석을 위해 혼자 객체가 필요? 달리 할 수 ​​있습니까?

감사합니다.

답변

3

RotatedRect에서 마스크를 만들고 마스크로 이미지를 복사해야합니다.

편집

마스크를 만드는 방법

:

이 원본과 동일한 크기의 새 이미지를 만들기를하지만, 하나의 채널 만 8U. preffered 메서드로 0으로 설정하십시오. 사각형, 다각형, 원 또는 원하는대로 ROI로 사용할 드로잉을 원하는 드로잉 기능으로 그립니다. 예 : DrawPoly. 그림을 255로 채우십시오. 이미지를 표시하십시오. 검은 색 배경이 흰색 폴리곤이어야합니다.

마스크 매개 변수로 사용하십시오.

+0

안녕 Vasile, 어떻게 하죠? cvCopy 사용? cvCopy를 사용해야하는 경우 thresImg를 첫 번째 매개 변수로두고 rotateRect를 세 번째로 마스크로 사용하여 두 번째 매개 변수 (dest)는 무엇입니까? 내가 잘 이해한다면, 마스크의 크기 인 IplImage인가? 고마워 !!! – CTZStef

+0

수정 사항을 확인하십시오. – Sam

+0

미안하지만 OpenCV에서 drawPoly 함수를 찾을 수 없습니다 ... – CTZStef