如何使用 OpenCV Python 查找颜色的 HSV 值?


要查找颜色的HSV 值,我们可以使用从BGRHSV的颜色空间转换。首先,我们将颜色值定义为BGR格式的numpy.ndarray,然后将其转换为HSV空间。

我们还可以找到HSV值的下限上限,分别为[H-10, 100, 100][H+10, 255, 255]。这些下限和上限可用于跟踪特定颜色的物体。

要查找颜色的HSV值,请按照以下步骤操作:

步骤

导入所需的库。在以下所有 Python 示例中,所需的 Python 库为OpenCVNumPy。请确保您已安装它们。

import cv2
import numpy as np

为颜色定义一个dtype=np.uint8numpy.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)

更新于: 2022年9月27日

13K+ 浏览量

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告