윤곽선의 최소 경계 사각형은 OpenCv
에 의해 CvRect
구조로 반환됩니다. 내가 m 픽셀 두꺼운 여백/테두리가 원래 이미지에이 CvRect
에 해당하는 하위 이미지 주위에 노력하고있어, 즉 구성 요소 (윤곽선)의 정확한 경계 사각형 대신 구성 요소를 포함하는 더 큰 무언가를 얻는다. 또한 바로 그 주변 픽셀.이미지에 반영되지 않는 CvRect 값의 변경
내가 서브 이미지 얻기 위해 나중에 CvSetImageROI()
에 적용되는 CvRect
의 크기를 증가하려면 다음 코드를 사용하고, 이미지의 경계시주의 사항 : 여기
//making m px border around subimg
CvRect box_swt = box1;
box_swt.x = (box1.x)>m ? box1.x-m : box1.x;
box_swt.y = (box1.y)>m ? box1.y-m : box1.y;
box_swt.width = (box1.x + box1.width) < img->width-m ? box1.width+m : box1.width;
box_swt.height = (box1.y + box1.height) < img->height-m ? box1.height+m : box1.height;
을 box1
저장 반환 from cvBoundingRect(ptr, 0)
여기서 ptr은 검출 된 윤곽에 대한 포인터입니다.
결과적으로 하위 이미지는 위쪽 및 왼쪽 테두리에서만 커지고 나머지는 변경되지 않습니다. 모든 측면에서 균일 한 m 픽셀 두께의 테두리가있는 하위 이미지가 표시되지 않습니다. 이것은 경계에있는 사람들뿐만 아니라 모든 경우에 발생합니다. 논리적 인 오류가 있습니까?
바보 같지 않아서 게시 후 얼마 지나지 않아 수정되었습니다. 어쨌든 고마워. – AruniRC