首頁 > 後端開發 > Python教學 > 如何在 OpenCV 中優化 HSV 邊界以實現準確的顏色檢測?

如何在 OpenCV 中優化 HSV 邊界以實現準確的顏色檢測?

Linda Hamilton
發布: 2024-12-01 10:00:14
原創
385 人瀏覽過

How to Optimize HSV Boundaries for Accurate Color Detection in OpenCV?

使用cv::inRange (OpenCV) 選擇最佳HSV 邊界進行顏色偵測

在影像處理中,經常使用HSV 顏色空間用於顏色檢測。選擇適當的 HSV 上下邊界對於準確識別目標顏色至關重要。本問題探討了咖啡罐上包含橙色蓋子的圖像的選擇過程。

儘管為蓋子提供了估計的HSV 中心值(22, 59, 100),但最初嘗試使用邊界(18 、40、90)和(27、255、255)的結果並不令人滿意。為了解決這個問題,我們必須考慮 HSV 比例和影像格式中的潛在問題。

問題 1:HSV 比例差異

不同的應用程式可能使用不同的 HSV 比例。 GIMP採用H=0-360,S=0-100,V=0-100,而OpenCV採用H:0-179,S:0-255,V:0-255。在這種情況下,GIMP 色調值 (22) 應減半以匹配 OpenCV 的比例,導致範圍為 (5, 50, 50) - (15, 255, 255)。

問題2:影像格式轉換

OpenCV 操作的是 BGR 格式的影像,而不是 RGB。因此,需要將顏色轉換行修改為cv.CvtColor(frame,frameHSV,cv.CV_BGR2HSV)。這確保了影像在 HSV 邊界檢測之前正確轉換。

透過合併這些調整,我們獲得了更有希望的結果:

[改進的檢測影像]

雖然輸出並不完美,它改進了對橙色蓋子的檢測。透過選擇與蓋子相對應的最大輪廓,可以最大限度地減少錯誤檢測。

結論

選擇適當的 HSV 邊界需要考慮尺度差異和適當的影像格式轉換。透過解決這些問題,我們可以在 OpenCV 中使用 cv::inRange 來提高顏色偵測的準確性。

以上是如何在 OpenCV 中優化 HSV 邊界以實現準確的顏色檢測?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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