Python CV2检测特定的彩色对象并获取其坐标坐标

时间:2020-03-29 10:54:55

标签: python image-processing image-recognition cv2

我正在我的拳头CV2颜色检测项目中工作,需要一些帮助才能继续进行。 到目前为止,我一直在抓取图像并将其过滤为特定颜色(请参见下面的代码和图片):

import numpy as np
from PIL import ImageGrab
import cv2

def rec_picture():
   raw_pic = np.array(ImageGrab.grab(bbox=(10, 70, 1330, 609)))
   colored_pic = cv2.cvtColor(raw_pic, cv2.COLOR_BGR2RGB)
   return colored_pic

def filter_for_color(picture, color):
   if color == 'red':
       l_h = 116
       l_s = 158
       l_v = 51
       u_h = 179
       u_s = 192
       u_v = 255

   elif color == 'yellow':
       l_h = 88
       l_s = 56
       l_v = 139
       u_h = 119
       u_s = 255
       u_v = 255

   hsv = cv2.cvtColor(picture, cv2.COLOR_RGB2HSV)
   lower_color = np.array([l_h, l_s, l_v])
   upper_color = np.array([u_h, u_s, u_v])
   mask = cv2.inRange(hsv, lower_color, upper_color)
   res = cv2.bitwise_and(picture, picture, mask=mask)
   return res

def main():
   while(True):

       screen = filter_for_color(rec_picture(), 'yellow')
       cv2.imshow('window', screen)

       if cv2.waitKey(25) & 0xFF == ord('q'):
           cv2.destroyAllWindows()
           break

if __name__ == '__main__':
   main()

上面的代码的结果是:

Results after the filtering process.

下一步,我希望python将图片中那些长的黄色部分识别为“对象”,并接收每个绿色框中心的屏幕坐标(以便稍后控制鼠标):

Gimp-made sketch of what I want to do

结果,我想到了类似的东西:

screen_coordinates_obj1 = get_obj_coordinates (obj1)

谢谢!

0 个答案:

没有答案