
오른쪽으로 3.5 도 기울어짐 B/W 이미지
이 기울어진 물체의 외곽 좌표들을 아래와 같이 findContours 를 이용하여 추출 할 수 있다.
| cv::Mat bw = cv::imread("..... "); std::vector<std::vector<cv::Point>> contours; std::vector<cv::Vec4i> hierarchy; cv::findContours( bw , contours, hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE); |
하지만 기울림으로 인하여 인위적인 계단이 생겼기 때문에 이 경우에는 196 포인트의 좌표가 추출 된다.

이 계단 형태의 좌표들을 상쇄하여 심플한 직선 좌표를 얻고자 한다면 approxPolyDP 를 이용하여 contours 결과값을 가공하자.
| std::vector<std::vector<cv::Point>> approx_contours; for (const auto& contour : contours) { std::vector<cv::Point> approx_contour; double epsilon = 0.01 * arcLength(contour, true); approxPolyDP(contour, approx_contour, epsilon, true); approx_contours.push_back(approx_contour); } |
위의 approx_contour 에는 4개의 꼭지점 좌표가 반환된다.
'opencv' 카테고리의 다른 글
| Color Transform (0) | 2025.10.30 |
|---|---|
| findContours 의 CV_RETR_TREE 옵션과 hierarchy 의 관계 (0) | 2025.06.26 |
| Barcode 읽기 (0) | 2025.02.23 |
| close contours (convexHull 사용) (0) | 2025.02.16 |
| 스캔 이미지 중 여러 영수증 분리하기 (0) | 2025.02.15 |