문제:
빨간색 직사각형이 포함된 이미지가 주어지면 작업은 다음과 같습니다. HSV 색 공간 내에서 OpenCV의 cv::inRange 메서드를 사용하여 빨간색의 감지 정확도를 높이는 것입니다.
원래 접근 방식:
int H_MIN = 0; int H_MAX = 10; int S_MIN = 70; int S_MAX = 255; int V_MIN = 50; int V_MAX = 255; cv::inRange( imageHSV, cv::Scalar( H_MIN, S_MIN, V_MIN ), cv::Scalar( H_MAX, S_MAX, V_MAX ), imgThreshold0 );
이 접근 방식은 결과가 만족스럽지 않습니다.
향상된 솔루션:
원래 접근 방식은 HSV 공간에서 약 180도 빨간색의 "래핑"을 설명하지 못했습니다. 이 문제를 해결하려면 H 범위에 [0,10]과 [170, 180]이 모두 포함되어야 합니다.
inRange(hsv, Scalar(0, 70, 50), Scalar(10, 255, 255), mask1); inRange(hsv, Scalar(170, 70, 50), Scalar(180, 255, 255), mask2); Mat1b mask = mask1 | mask2;
이 업데이트된 접근 방식은 향상된 감지 결과를 제공합니다.
대안 접근 방식:
또 다른 효율적인 방법은 다음과 같습니다.
Mat3b bgr_inv = ~bgr; inRange(hsv_inv, Scalar(90 - 10, 70, 50), Scalar(90 + 10, 255, 255), mask); // Cyan is 90
이 대체 접근 방식은 단일 범위 검사를 제공하고 만족스러운 결과를 제공합니다.
위 내용은 OpenCV를 사용하여 HSV 색상 공간에서 빨간색 객체 감지 정확도를 향상시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!