OpenCV: определение цвета и рисование линий на цвете - PullRequest
0 голосов
/ 04 августа 2020

Моя цель - найти цвет на моем экране, а затем после того, как он распознает цвет, он должен нарисовать на нем линию. Но я всегда получаю эту ошибку:

Traceback (most recent call last):
  File "C:/Users/Admin/PycharmProjects/test/test.py", line 34, in <module>
    cv2.line(screen, (mask[0], mask[1]), (mask[3], mask[4]), [0, 0, 255], 23)
TypeError: only integer scalar arrays can be converted to a scalar index

Примечание: - Я уже искал ошибку, и другие люди сказали, что мне нужно сохранить маску в [] . Я пробовал это, но он сказал: «ТипError: нужен тип int, есть список типов». Это код:

while True:
    screen = np.array(ImageGrab.grab(bbox=(132, 120, 638, 510)))
    mask = cv2.inRange(screen, np.array([128, 0, 0]), np.array([255, 0, 0]))
    new_screen = process_img(screen)
    cv2.imshow('window', new_screen)
    cv2.imshow('window2', cv2.cvtColor(screen, cv2.COLOR_BGR2RGB))
    cv2.line(screen, (mask[0], mask[1]), (mask[3], mask[4]), [0, 0, 255], 23)
    cv2.imshow('bla', mask)
    if cv2.waitKey(25) & 0xFF == ord('q'):
        cv2.destroyAllWindows()
        break

Edit: - Вам может быть интересно, что такое process_img и что он может создавать проблемы, это функция, которую я написал до этого кода. Я подумал, что это будет пустой тратой времени для всех вас, помощников, которые прочитают это, поэтому я не включил эту часть кода. Я уверен, что именно здесь и возникла ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...