如何使用 OpenCV Python 查詢顏色的 HSV 值?
要查詢顏色的HSV 值,我們可以使用從BGR到HSV的顏色空間轉換。首先,我們將顏色值定義為BGR格式的numpy.ndarray,然後將其轉換為HSV空間。
我們還可以找到HSV值的下限和上限,分別為[H-10, 100, 100]和[H+10, 255, 255]。這些下限和上限可用於跟蹤特定顏色的物體。
要查詢顏色的HSV值,請按照以下步驟操作:
步驟
匯入所需的庫。在以下所有 Python 示例中,所需的 Python 庫為OpenCV和NumPy。請確保您已安裝它們。
import cv2 import numpy as np
為顏色定義一個dtype=np.uint8的numpy.ndarray。
green = np.uint8([[[0, 255, 0]]])
將上述定義的顏色轉換為HSV。
hsvGreen = cv2.cvtColor(green, cv2.COLOR_BGR2HSV)
列印顏色值。
print("HSV of Green:", hsvGreen)
讓我們看一些程式示例來清楚地瞭解它。
示例 1
在這個示例中,我們查詢綠色顏色的HSV值。綠色的BGR值為[0,255,0]。
# import required libraries import numpy as np import cv2 # define a numpy.ndarray for the color # here insert the bgr values which you want to convert to hsv green = np.uint8([[[0, 255, 0]]]) # convert the color to HSV hsvGreen = cv2.cvtColor(green, cv2.COLOR_BGR2HSV) # display the color values print("BGR of Green:", green) print("HSV of Green:", hsvGreen) # Compute the lower and upper limits lowerLimit = hsvGreen[0][0][0] - 10, 100, 100 upperLimit = hsvGreen[0][0][0] + 10, 255, 255 # display the lower and upper limits print("Lower Limit:",lowerLimit) print("Upper Limit", upperLimit)
輸出
執行上述 Python 程式後,將產生以下輸出:
BGR of Green: [[[ 0 255 0]]] HSV of Green: [[[ 60 255 255]]] Lower Limit: (50, 100, 100) Upper Limit (70, 255, 255)
示例 2
在這個示例中,我們查詢BGR值為[106,76,89]的顏色對應的HSV值。
# import required libraries import numpy as np import cv2 green = np.uint8([[[0, 255, 0]]]) # convert the color to HSV hsvGreen = cv2.cvtColor(green, cv2.COLOR_BGR2HSV) # here insert the bgr values which you want to convert to hsv bgr = np.uint8([[[106,76,89]]]) hsv = cv2.cvtColor(green, cv2.COLOR_BGR2HSV) print("BGR Value:", bgr) print("HSV Value:", hsv) # compute the lower and upper limits lowerLimit = hsvGreen[0][0][0] - 10, 100, 100 upperLimit = hsvGreen[0][0][0] + 10, 255, 255 # display the lower and upper limits print("Lower Limit:",lowerLimit) print("Upper Limit", upperLimit)
輸出
執行上述 Python 程式後,將產生以下輸出:
BGR Value: [[[76 76 89]]] HSV Value: [[[ 60 255 255]]] Lower Limit: (50, 100, 100) Upper Limit (70, 255, 255)
廣告