首頁  >  文章  >  後端開發  >  如何使用 OpenCV 閾值檢測影像中的綠色物體?

如何使用 OpenCV 閾值檢測影像中的綠色物體?

Barbara Streisand
Barbara Streisand原創
2024-11-04 08:17:02895瀏覽

How to Detect Green Objects in an Image Using OpenCV Threshold Values?

在 OpenCV 中使用閾值來偵測綠色物件

偵測特定顏色物件是影像處理中的常見任務。本問題示範如何使用 OpenCV 定義閾值來隔離影像中的綠色物件。

定義閾值

要偵測綠色對象,您可以定義一個色相(H)、飽和度(S) 和明度(V) 色彩空間中的閾值範圍。 H 值決定色調,而 S 和 V 分別表示飽和度和亮度。

方法 1:HSV 色彩空間

一種方法是使用HSV 色彩空間,提供比 RGB 更準確的顏色表示。對於綠色,您可以指定一個範圍,例如:

  • H: 36-86
  • S: 25-255
  • V: 25-255

方法二: cv2.inRange

另一種方法是使用cv2.inRange() 函數,此函數採用兩個參數:下限閾值和上限閾值。例如,要偵測綠色:

  • 下限:(36, 25, 25)
  • 上限:(70, 255, 255)

範例實作

以下Python 程式碼使用OpenCV 示範了這一點:
<code class="python">import cv2
import numpy as np

# Read image
img = cv2.imread("image.jpg")

# Convert to HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# Define threshold values
lower_bound = (36, 25, 25)
upper_bound = (70, 255, 255)

# Create mask
mask = cv2.inRange(hsv, lower_bound, upper_bound)

# Extract green objects
green = np.zeros_like(img, np.uint8)
imask = mask > 0
green[imask] = img[imask]

# Display
cv2.imshow("Green Objects", green)
cv2.waitKey(0)</code>

此程式碼示範如何定義閾值以從輸入影像中分離出綠色對象,並使用以下命令呈現結果影像僅辨識出的綠色區域。

以上是如何使用 OpenCV 閾值檢測影像中的綠色物體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn