Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk mencari nilai HSV warna menggunakan OpenCV Python?

Bagaimana untuk mencari nilai HSV warna menggunakan OpenCV Python?

王林
王林ke hadapan
2023-08-19 14:25:14969semak imbas

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

Untuk mencari HSV nilai sesuatu warna, kita boleh menggunakan penukaran ruang warna daripada BGR kepada HSV. Mula-mula, kami mentakrifkan nilai warna sebagai numpy.ndarray dalam format BGR dan kemudian menukarnya kepada HSV ruang.

Kita juga boleh mencari had dan atas HSV nilai sebagai [H-10, 100, 100] dan [H+10, 255, dan atas masing-masing boleh digunakan untuk mengesan objek warna tertentu.

Untuk mencari nilai

HSV sesuatu warna, ikut langkah berikut:

Langkah

Import perpustakaan yang diperlukan Dalam semua contoh Python berikut, perpustakaan Python yang diperlukan ialah

OpenCV dan NumPy Pastikan anda telah memasangnya.

import cv2
import numpy as np

Tentukan

numpy.ndarray untuk warna, dtype=np.uint8.

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

Tukar warna yang ditakrifkan di atas kepada

HSV.

hsvGreen = cv2.cvtColor(green, cv2.COLOR_BGR2HSV)

Cetak nilai warna.

print("HSV of Green:", hsvGreen)

Mari kita lihat beberapa contoh program untuk memahaminya dengan jelas.

Contoh 1

Dalam contoh ini, kita dapati nilai

HSV untuk warna hijau Nilai BGR hijau ialah [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)

Output

Apabila anda menjalankan program Python di atas, ia akan menghasilkan output berikut

BGR of Green: [[[ 0 255 0]]] 
HSV of Green: [[[ 60 255 255]]] 
Lower Limit: (50, 100, 100) 
Upper Limit (70, 255, 255)
Terjemahan bahasa Cina bagi

Contoh 2

ialah:

Contoh 2

Dalam contoh ini, kita dapati nilai

HSV untuk warna yang BGR nilainya ialah [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)

Output

Apabila anda menjalankan program python di atas, ia akan menghasilkan output berikut

BGR Value: [[[76 76 89]]] 
HSV Value: [[[ 60 255 255]]] 
Lower Limit: (50, 100, 100) 
Upper Limit (70, 255, 255)

Atas ialah kandungan terperinci Bagaimana untuk mencari nilai HSV warna menggunakan OpenCV Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam