>백엔드 개발 >C++ >이미지의 정확한 빨간색 감지를 위해 OpenCV의 inRange 기능을 어떻게 최적화할 수 있습니까?

이미지의 정확한 빨간색 감지를 위해 OpenCV의 inRange 기능을 어떻게 최적화할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-19 09:09:021057검색

How can OpenCV's inRange function be optimized for accurate red color detection in images?

OpenCV를 사용하여 빨간색 색상 감지 향상

정확한 색상 감지는 다양한 컴퓨터 비전 작업에 필수적입니다. 이 문서에서는 OpenCV 라이브러리를 사용하여 빨간색 개체를 감지하는 구체적인 과제를 다룹니다. HSV 색상 공간을 탐색하고 임계값 매개변수를 개선하여 이미지 내 빨간색 직사각형의 감지 성능을 향상시키는 것을 목표로 합니다.

문제 설명

빨간색 직사각형의 목표는 OpenCV의 inRange 함수와 HSV 색상 공간을 사용하여 빨간색 개체를 분리하고 감지하는 것입니다. 그러나 제공된 매개변수 범위를 사용한 초기 시도에서는 만족스러운 결과를 얻지 못했습니다.

제안 솔루션: HSV 색 공간

HSV 공간에서는 붉은 색조가 180도 값. 따라서 빨간색을 효과적으로 감지하려면 [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;

이 두 마스크를 결합하면 빨간색 범위를 더 정확하게 캡처할 수 있습니다. 개선된 결과에서 볼 수 있듯이.

대체 접근 방식: 반전된 이미지 HSV

이 문제에 대한 또 다른 관점은 원본 BGR 이미지를 HSV로 변환하기 전에 반전시키는 것입니다. 반전된 이미지에서 빨간색은 청록색이 되어 감지하기가 더 쉽습니다.

Mat3b bgr_inv = ~bgr;
cvtColor(bgr_inv, hsv_inv, COLOR_BGR2HSV);

inRange(hsv_inv, Scalar(90 - 10, 70, 50), Scalar(90 + 10, 255, 255), mask);

이 접근 방식을 사용하면 반전된 HSV 이미지에서 단일 대상 색상(청록색)을 검색하여 유효한 대안을 제공할 수 있습니다. 이중 범위 접근 방식으로 전환합니다.

결론

색상 감지 매개변수와 HSV 색상 공간의 특정 속성을 활용하면 OpenCV를 사용하여 빨간색 객체 감지 기능을 크게 향상시킬 수 있습니다. 제공된 솔루션은 까다로운 색상 감지 시나리오를 처리하는 데 있어서 OpenCV의 다양성과 효율성을 보여줍니다.

위 내용은 이미지의 정확한 빨간색 감지를 위해 OpenCV의 inRange 기능을 어떻게 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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