728x90
반응형
OpenCV 에서 ROI 만큼 이미지를 Crop 시키는 방법은 아래와 같다.
간단한 방법인데, 잊지않으려고 정리한다.
Python 구현
# x, y, w, h refers to the ROI for which the image is to be cropped.
img = cv2.imread('test.jpg')
cropped_img = img[y: y + h, x: x + w]
C++ 구현
Mat img = cv::imread("test.jpg");
Rect bounds(0,0,img.cols,img.rows);
Rect r(x,y,width,height); // partly outside
Mat roi = img( r & bounds ); // cropped to fit image
위와 같이 구현하면 아래와 같은 에러를 방지함
OpenCV Error: Assertion failed (0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows) in cv::Mat::Mat
참고자료 : https://answers.opencv.org/question/179280/cropping-of-images-in-c-vs-python/
728x90
반응형
'Programming > OpenCV' 카테고리의 다른 글
[OpenCV] 동영상 재생 + 프레임 측정 + 적응적 이진화 + 캐니에지 + 컨투어링 + 모멘트 + putText (0) | 2018.10.22 |
---|---|
[OpenCV] 라벨링 개념, 객체 카운팅 + 색상 추출 + 라벨링 예제 (0) | 2018.10.22 |
[OpenCV] putText 폰트 c++ (0) | 2018.10.18 |
[OpenCV] 특정 픽셀 값 접근하기 (0) | 2018.09.07 |
[OpenCV] image inpaint 함수 (object removal or region filling) (0) | 2018.09.05 |