티스토리 뷰

ROI는 원본 이미지에서 관심영역을 추출할 수 있도록 해준다.


 
	// for each face draw the bounding rectangle
	for(i = 0; i < (faces ? faces->total : 0); i++) {
		CvRect *r = (CvRect*)cvGetSeqElem(faces, i);
		CvPoint pt1 = { r->x, r->y }; 
		CvPoint pt2 = { r->x + r->width,
			r->y + r->height };
		cvRectangle(image, pt1, pt2, CV_RGB(0, 84, 255), 3, 8, 0);
		
		cvSetImageROI(image, cvRect(pt1.x, pt1.y, r->width, r->height));
		cvAddS(image, cvScalar(150), image);
		cvResetImageROI(image);
	} 

 해당 코드는 얼굴검출이 완료된 좌표에 네모를 그려주는 코드이다. 위 코드에서 

cvSetImageROI(image, cvRect(pt1.x, pt1.y, r->width, r->height));
cvAddS(image, cvScalar(150), image);
cvResetImageROI(image);


이 코드가 ROI를 설정하고, 영역이미지를 수정하고, ROI를 해제하는 코드이다.

void cvSetImageROI(IplImage* image, CvRect rect);     // 설정

void cvResetImageROI(IplImage* image);                    // 해제


설정하는 경우 인자값으로 이미지와 관심영역 좌표범위를 사용하고, 반환에는 해당 이미지를 사용하게 된다.

여기서 설정만하고 해제를 안하는 경우에는 실제 이미지 출력이 아닌, 관심영역의 이미지만 출력된다.


void cvAddS( const CvArr* src, CvScalar value, CvArr* dst, const CvArr* mask=NULL );

이 코드는 영역의 픽셀을 씌우는 부분이 된다.


             결과 화면  




'Language > Computer Vision' 카테고리의 다른 글

[영상처리] 이미지, xml 저장하기  (0) 2014.02.10
[영상처리] YCbCr 입 검출  (1) 2014.01.09
[영상처리] YCbCr 손 검출  (0) 2014.01.02
[영상처리] 얼굴 검출  (2) 2013.12.16
[OpenCV] 설치  (0) 2013.10.24
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday