首頁 > 後端開發 > C++ > 如何使用 OpenCV 提高 HSV 色彩空間中的紅色物體偵測精度?

如何使用 OpenCV 提高 HSV 色彩空間中的紅色物體偵測精度?

Linda Hamilton
發布: 2024-11-15 04:43:02
原創
1021 人瀏覽過

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. 搜尋青色。
Mat3b bgr_inv = ~bgr;
inRange(hsv_inv, Scalar(90 - 10, 70, 50), Scalar(90 + 10, 255, 255), mask); // Cyan is 90
登入後複製

這個替代方法提供單一範圍檢查並產生令人滿意的結果。

以上是如何使用 OpenCV 提高 HSV 色彩空間中的紅色物體偵測精度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板