如何使用 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)
广告