소개
OpenCV와 HSV 색상을 이용한 빨간색 탐지를 다룰 때 공간이 부족하여 만족스러운 결과를 얻기 어려울 수 있습니다. 그러나 다양한 접근 방식과 매개변수 조정을 탐색하면 상당한 개선이 이루어질 수 있습니다.
문제
이미지 내의 빨간색 직사각형 감지 기능을 향상하려면 다음 코드를 사용하세요. 활용되었습니다:
#include <opencv2/opencv.hpp> int main() { // Image initialization Mat input = imread("path_to_image"); // HSV conversion Mat imageHSV; cvtColor(input, imageHSV, COLOR_BGR2HSV); // HSV parameter ranges int H_MIN = 0; int H_MAX = 10; int S_MIN = 70; int S_MAX = 255; int V_MIN = 50; int V_MAX = 255; // Red color range in HSV cv::inRange(imageHSV, cv::Scalar(H_MIN, S_MIN, V_MIN), cv::Scalar(H_MAX, S_MAX, V_MAX), imgThreshold0); }
동적 트랙바를 사용하여 HSV 값을 조정하더라도 최적의 결과를 얻기 어렵습니다.
솔루션
1 . 색조 값 범위 확장:
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);
2. 이미지 반전 및 청록색 감지:
또는 흥미로운 접근 방식은 다음과 같습니다.
이 방법은 HSV에서 단일 범위만으로 빨간색(청록색)의 보색을 효과적으로 감지합니다.
// Invert original image Mat3b bgr_inv = ~bgr; // Convert to HSV Mat3b hsv_inv; cvtColor(bgr_inv, hsv_inv, COLOR_BGR2HSV); // Detect cyan range inRange(hsv_inv, Scalar(90 - 10, 70, 50), Scalar(90 + 10, 255, 255), mask);
결론
이러한 향상된 기술을 통합함으로써 OpenCV는 더욱 정확하게 빨간색을 효과적으로 감지할 수 있습니다. 이러한 접근 방식은 다양한 이미지 처리 시나리오에서 추가 최적화 및 적용을 위한 견고한 기반을 제공합니다.
위 내용은 HSV 색상 공간을 사용하여 OpenCV에서 빨간색 감지를 어떻게 향상시킬 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!