>백엔드 개발 >C++ >OpenCV를 사용하여 HSV 색상 공간에서 빨간색 객체 감지 정확도를 향상시키는 방법은 무엇입니까?

OpenCV를 사용하여 HSV 색상 공간에서 빨간색 객체 감지 정확도를 향상시키는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-15 04:43:021061검색

How to Improve Red Object Detection Accuracy in HSV Color Space with OpenCV?

OpenCV로 최적화된 HSV 색 공간 객체 감지

문제:

빨간색 직사각형이 포함된 이미지가 주어지면 작업은 다음과 같습니다. 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;

이 업데이트된 접근 방식은 향상된 감지 결과를 제공합니다.

대안 접근 방식:

또 다른 효율적인 방법은 다음과 같습니다.

  1. BGR 이미지를 반전합니다.
  2. HSV로 변환합니다.
  3. 청록색을 검색합니다. color.
Mat3b bgr_inv = ~bgr;
inRange(hsv_inv, Scalar(90 - 10, 70, 50), Scalar(90 + 10, 255, 255), mask); // Cyan is 90

이 대체 접근 방식은 단일 범위 검사를 제공하고 만족스러운 결과를 제공합니다.

위 내용은 OpenCV를 사용하여 HSV 색상 공간에서 빨간색 객체 감지 정확도를 향상시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.