如何将像素的rgb值转换为HSV



我想在屏幕上找到一个像素的R G B值并转换这个值,除了转换过程之外没有问题。我哪里做错了?

import time
import numpy as np
import pyautogui
import cv2
s = pyautogui.screenshot(region=(0,0, 1152, 864))
for x in range(1,s.width):
for y in range(1,s.height):
pyautogui.click(x, y)
k = pyautogui.position()
rgb = pyautogui.pixel(k[0], k[1])
array = np.array(rgb)
#hsv_frame = cv2.cvtColor(array,cv2.COLOR_BGR2HSV) Not working.
#hsv_frame = cv2.cvtColor(rgb,cv2.COLOR_BGR2HSV) Not working.
print(k,rgb,array)
time.sleep(0.2)

编辑:代码通常由于以下可能的原因而失败:

  1. 您的代码没有np.array()函数中提到的数组类型
  2. 数组的维度也不是opencv想要的
  3. Pyautogui以RGB处理图像,但可以选择将BGR转换为HSV

此代码现在应该可以正常工作:

import time
import numpy as np
import pyautogui
import cv2
s = pyautogui.screenshot(region=(0,0, 1152, 864))
for x in range(1,s.width):
for y in range(1,s.height):
pyautogui.click(x, y)
k = pyautogui.position()
rgb = pyautogui.pixel(k[0], k[1])
rgb = [[rgb]] # increasing the dimension of array so that opencv can work with it
array = np.array(rgb,np.uint8) # defining an array with uint8 type
hsv_frame = cv2.cvtColor(array,cv2.COLOR_RGB2HSV) # converting RGB to HSV
print(k,rgb,array)
print(hsv_frame)
time.sleep(0.2)

如果存在进一步的问题,请发表评论。

相关内容

  • 没有找到相关文章

最新更新