Задать вопрос
@Name_Zagotovka

Как использовать cv2.matchTemplate без сохранения на диск исходника?

Имеем код след. действия. Делаем скрин. ищем на скрине "zzz.png". Если нашли выводим координаты.
Но если пытаться отправить скрин переменной(код ниже), то получаем ошибку "Expected Ptr for argument 'image'", если я правильно понял ,ругается что есть обязательный аргумент, который ждет функция matchTemplate, и который якобы не указан...
def chek():
    img = ImageGrab.grab()
    template = cv2.imread("zzz.png")
    res = cv2.matchTemplate(img,template,cv2.TM_CCOEFF_NORMED)
    min_v, max_v, min_pt, max_pt = cv2.minMaxLoc(res)
    threshold=0.98
    loc = np.where( res >= threshold)
    # print(str(x)+'    '+str(y))
    coord=1
    for pt in zip(*loc[:: -1]):
        x,y=pt
        print('coord = '+str(coord))
        print(x)
        print(y)
        coord=coord+1


Однако если немного поправить код, а именно сохранить сделанный скрин, далее его читаем через read (исправление ниже), то все взлетает.
img1 = ImageGrab.grab()
    img.save('test.png')
    img = cv2.imread("test.png")
    template = cv2.imread("zzz.png")
    res = cv2.matchTemplate(img,template,cv2.TM_CCOEFF_NORMED)


Вопрос: возможно ли передать скрин, переменной, т.е. без сохранения в файл, и последующего чтения из сохраненного файла.
Заранее благодарю
  • Вопрос задан
  • 235 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Можно. Прочитать про BytesIO
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽