@novi4ek11

Что нужно сделать чтобы mss скринил область вокруг курсора с его захватом?

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

from ctypes import windll, Structure, c_long, byref

import time
import cv2
import mss
import numpy
import pyautogui
import mouse

class POINT(Structure):
    _fields_ = [("x", c_long), ("y", c_long)]

def queryMousePosition():
    pt = POINT()
    windll.user32.GetCursorPos(byref(pt))
    return { "x": pt.x, "y": pt.y}

def click():
    pyautogui.mouseDown()
    time.sleep(0.01)
    pyautogui.mouseUp()

title = "tetovii"
sct = mss.mss()

while True:
    cur = queryMousePosition()
    mon = {"top": cur['y'] - 20, "left": cur['x'] - 20, "width": 30, "height": 30}

    img = numpy.asarray(sct.grab(mon))

    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

    # define range of whire color in HSV
    lower_white = numpy.array([0, 0, 212])
    upper_white = numpy.array([131, 255, 255])
    mask = cv2.inRange(hsv, lower_white, upper_white)
   
    hasRed = numpy.sum(mask)  
    if hasRed > 0:
        print("White detected!")

        pyautogui.moveTo(1217, 942, 0.01)
        click()
        time.sleep(5)

    else:
        print("white not detected")

    cv2.imshow(title, img)
    if cv2.waitKey(25) & 0xFF == ord("q"):
        cv2.destroyAllWindows()
        break
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы