如何使用OpenCV Python找到一种颜色的HSV值?

王林
发布: 2023-08-19 14:25:14
转载
928 人浏览过

如何使用OpenCV Python找到一种颜色的HSV值?

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

We can also find the lower and upper limits of HSV value as [H-10, 100, 100] and [H+10, 255, 255] respectively. These lower and upper limits can be used to track an object of particular color.

要找到一个颜色的HSV值,请按照以下步骤进行:

步骤

Import the required libraries. In all the following Python examples, the required Python libraries are OpenCV and NumPy. Make sure you have already installed them.

import cv2
import numpy as np
登录后复制

为颜色定义一个numpy.ndarraydtype=np.uint8

green = np.uint8([[[0, 255, 0]]])
登录后复制

Convert the above defined color to HSV.

hsvGreen = cv2.cvtColor(green, cv2.COLOR_BGR2HSV)
登录后复制

Print the color values.

print("HSV of Green:", hsvGreen)
登录后复制

Let's look at some program examples to understand it clearly.

Example 1

In this example, we find the HSV value for green color. The BGR value of green is [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)
登录后复制

输出

When you run the above Python program, it will produce the following output

BGR of Green: [[[ 0 255 0]]] 
HSV of Green: [[[ 60 255 255]]] 
Lower Limit: (50, 100, 100) 
Upper Limit (70, 255, 255)
登录后复制

Example 2

的中文翻译为:

示例 2

In this example, we find the HSV value for a color whose BGR value is [106,76,89].

# 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)
登录后复制

输出

When you run the above python program, it will produce the following output

BGR Value: [[[76 76 89]]] 
HSV Value: [[[ 60 255 255]]] 
Lower Limit: (50, 100, 100) 
Upper Limit (70, 255, 255)
登录后复制

以上是如何使用OpenCV Python找到一种颜色的HSV值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板