How to find the HSV value of a color using OpenCV Python?

王林
Release: 2023-08-19 14:25:14
forward
929 people have browsed it

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

To find the HSV value of a color, we can use the color space conversion from BGR to HSV. First, we define the color value as numpy.ndarray in BGR format and then convert it to HSV space.

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.

To find the HSV value of a color, follow these steps:

step

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
Copy after login

Define a numpy.ndarray for color, dtype=np.uint8.

green = np.uint8([[[0, 255, 0]]])
Copy after login

Convert the above defined color to HSV.

hsvGreen = cv2.cvtColor(green, cv2.COLOR_BGR2HSV)
Copy after login

Print the color values.

print("HSV of Green:", hsvGreen)
Copy after login

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)
Copy after login

Output

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)
Copy after login
The Chinese translation of

Example 2

is:

Example 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)
Copy after login

Output

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)
Copy after login

The above is the detailed content of How to find the HSV value of a color using OpenCV Python?. For more information, please follow other related articles on the PHP Chinese website!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template