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

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

要找到某种颜色的 HSV值 ,我们可以使用颜色空间转换将 BGR值 转换为 HSV值 。我们首先将颜色值定义为 numpy.ndarrayBGR值 格式,然后将其转换为 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 numpy as np
import cv2
# 为颜色定义一个numpy.ndarray
# 在此插入要转换为HSV的BGR值
green = np.uint8([[[0, 255, 0]]])
# 将颜色转换为HSV
hsvGreen = cv2.cvtColor(green, cv2.COLOR_BGR2HSV)
# 显示颜色的值
print("BGR of Green:", green)
print("HSV of Green:", hsvGreen)
# 计算下限和上限
lowerLimit = hsvGreen[0][0][0] -10, 100, 100
upperLimit = hsvGreen[0][0][0] + 10, 255, 255
# 显示下限和上限
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 numpy as np
import cv2
green = np.uint8([[[0, 255, 0]]])

# 将颜色转换为HSV
hsvGreen = cv2.cvtColor(green, cv2.COLOR_BGR2HSV)

# 插入要转换为hsv的bgr值
bgr = np.uint8([[[106,76,89]]])
hsv = cv2.cvtColor(green, cv2.COLOR_BGR2HSV)
print("BGR Value:", bgr)
print("HSV Value:", hsv)

# 计算下限和上限
lowerLimit = hsvGreen[0][0][0] - 10, 100, 100
upperLimit = hsvGreen[0][0][0] + 10, 255, 255

# 显示下限和上限
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)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python OpenCV