
рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░, рдореИрдВ рдЧреНрдиреВ / рд▓рд┐рдирдХреНрд╕ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдПрдХ рдЦреБрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реВрдВред рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╡рд┐рдВрдбреЛрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЯреИрдореНрдмреЙрд░рд┐рди рдХреЗ рдмрд┐рдирд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдиреГрддреНрдп рдХреЗ рдмрд┐рдирд╛ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрд╣реБрдд рдХрдо рдЦрд┐рд▓реМрдиреЗ рд╣реИрдВред
рдФрд░ MMORPG рд╢реИрд▓реА рдореЗрдВ рднреА рдХрдо рдЦреЗрд▓ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓рдЧрднрдЧ рдЖрдзреЗ рдпрд╛ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрд▓реНрдмрд┐рдпрди рдСрдирд▓рд╛рдЗрди рдЧреЗрдо рдХреЛ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдерд╛ред
рдЦреЗрд▓ рдмрд╣реБрдд рдордиреЛрд░рдВрдЬрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдФрд░ рдЗрд╕рд▓рд┐рдП рдЕрдкрдиреЗ рдмрд╣реБрдореВрд▓реНрдп рдЬреАрд╡рди рдХреЗ рдШрдВрдЯреЛрдВ рдХреЛ рд╡реНрдпрд░реНрде рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдмреЙрдЯ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЬрдм рдореИрдВ рдЕрдкрдиреЗ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдКрдВрдЧрд╛ рддреЛ рдореБрдЭреЗ рдХреМрди рдЦреЗрддреА рдХрд░реЗрдЧрд╛ред
рдЦреЗрд▓ рдореЗрдВ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╢рд┐рд▓реНрдк рд╣реИрдВ, рдЖрдк рд▓рдХрдбрд╝реА рдХрд╛рдЯ рд╕рдХрддреЗ рд╣реИрдВ, рдкрддреНрдерд░ рдЦреЛрдж рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмрдЧреАрдЪреЗ рднреА рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реА рдкрд╕рдВрдж рдордЫрд▓реА рдкрдХрдбрд╝рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдмрдиреА рдереАред
рддреЛ, рдЕрд▓реНрдмрд┐рдпрди рдСрдирд▓рд╛рдЗрди рдореЗрдВ рдордЫрд▓реА рдкрдХрдбрд╝рдиреЗ рдХрд╛ рд╕рд╛рд░ рд╕рд░рд▓ рд╣реИ, рдПрдХ рдордЫрд▓реА рдкрдХрдбрд╝рдиреЗ рд╡рд╛рд▓реА рдЫрдбрд╝реА рд▓реЗрдВ, рддрд╛рд▓рд╛рдм рдкрд░ рдЬрд╛рдПрдВ, рдЪрд╛рд░рд╛ рдлреЗрдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЯрди рдХреЛ рджрдмрд╛рдП рд░рдЦреЗрдВ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рдЯрдиреЗ рдХреЗ рд╕рдордп рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред

рдкреЗрдХрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдЯрди рджрдмрд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдПрдХ рдорд┐рдиреА-рдЧреЗрдо рдЦреЗрд▓рдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЦреАрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдлрд┐рд░ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдХреЗ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдордЫрд▓реА рдкрдХрдбрд╝рдиреЗ рдХреА рдЫрдбрд╝реА рдХреЛ рди рдЦреАрдВрдЪреЗрдВред рдлреНрд▓реЛрдЯ рд╣рдореЗрд╢рд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреНрд░рдо рдФрд░ рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдЪрд▓рддрд╛ рд░рд╣рддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рдЖрдк рд╕рдм рдХреБрдЫ рд╕рд╣реА рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлреНрд▓реЛрдЯ рдЕрдиреБрдореЗрдп рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдордЫрд▓реА рдкрдХрдбрд╝ рд▓реЗрдВрдЧреЗред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЗрд╕ рд╕рднреА рд╡реНрдпрд╡рд╕рд╛рдп рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░реЗрдВрдЧреЗред рдХрдВрдкреНрдпреВрдЯрд░ рднрд╛рд╖рд╛ рдХреЗ рдЕрдЬрдЧрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рдореИрдВрдиреЗ рд╕рдмрд╕реЗ рдХрдард┐рди рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЕрд░реНрдерд╛рддреН рдЙрд╕ рдХреНрд╖рдг рд╕реЗ рдЬрд╣рд╛рдВ рдЦреЗрд▓ рдПрдХ рдирд╛рд╡ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдлрд┐рд░ рд╕реЗ, рдореЗрд░реА рдкрд╕рдВрджреАрджрд╛
OpenCV рдХрдВрдкреНрдпреВрдЯрд░ рджреГрд╖реНрдЯрд┐
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрд░реЗ рдмрдЪрд╛рд╡ рдореЗрдВ рдЖрдпрд╛ред рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рдХреЗ, рд╣рдо рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд┐рддреНрд░реЛрдВ рдореЗрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕реНрд╡рдпрдВ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдХрдИ рдкреИрдЯрд░реНрди рд╣реИрдВ рдЬрд╣рд╛рдВ рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрд▓реНрдмрд┐рдпрди рдСрдирд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреЛрдИ рдлрд╝реНрд▓реЛрдЯреНрд╕ рдирд╣реАрдВ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рджрд┐рдП рдЧрдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрднреБрдд рдЦреЛрдЬ рдлрд╝рдВрдХреНрд╢рди рд╣реИред рдФрд░ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рд╣рдорд╛рд░реЗ рдлреНрд▓реЛрдЯ рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓рд┐рдпрд╛ред

рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪрд┐рддреНрд░ рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдФрд░ рддрд╕реНрд╡реАрд░ рдФрд░ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╡реАрдбрд┐рдпреЛ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рддреЗрдЬ рдЧрддрд┐, рдФрд░ рдХреЛрдб рдХреА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд┐рддреНрд░реЛрдВ рдХреА рдПрдХ рдзрд╛рд░рд╛ рд╣реИред рдФрд░ рдЕрдм рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╡реАрдбрд┐рдпреЛ рдкрд░ рдлреНрд▓реЛрдЯ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдХреЛрдбimport numpy as np import cv2 from mss.linux import MSS as mss from PIL import Image import time import pyautogui as pg import cv2 import mss import numpy template = cv2.imread("2019-07-02_06-55_1.png", cv2.IMREAD_GRAYSCALE) w, h = template.shape[::-1] with mss.mss() as sct: monitor = {"top": 40, "left": 0, "width": 800, "height": 640} while "Screen capturing": last_time = time.time() img = numpy.array(sct.grab(monitor)) cv2.imshow("OpenCV/Numpy normal", img) print("fps: {}".format(1 / (time.time() - last_time))) gray_frame = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) res = cv2.matchTemplate(gray_frame, template, cv2.TM_CCOEFF_NORMED) loc = np.where(res >= 0.7) for pt in zip(*loc[::-1]): cv2.rectangle(img, pt, (pt[0] + w, pt[1] + h), (0, 255, 0), 3) cv2.imshow("Frame", img) key = cv2.waitKey(1) if cv2.waitKey(25) & 0xFF == ord("q"): cv2.destroyAllWindows() break
рд╣рдо рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВред рдлреНрд▓реЛрдЯ рд╕реНрд╡рдпрдВ рдЖрдЧреЗ-рдкреАрдЫреЗ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдорд╛рдЙрд╕ рдкрд░ рдмрдЯрди рджрдмрд╛рдХрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдпреЗ рд▓рд╛рдЗрдиреЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░рддреА рд╣реИрдВред
for p in img: pts = (pt[0],pt[1]) x = (pt[0]) y = (pt[1]) print (x) cv2.circle(template,pts,5,(200,0,0),2) cv2.putText(img, "%d-%d" % (x,y), (x+10,y-10), cv2.FONT_HERSHEY_SIMPLEX, 1, color_yellow, 2)
рдлрд┐рд░ рд╣рдо рдмрд╕
PyAutoGUI рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдорд╛рдЙрд╕ рдмрдЯрди рдХреЛ
рдЬрдХрдбрд╝реЗрдЧрд╛ рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ
рджрдмрд╛рдПрдЧрд╛ ред
if 100 < x < 500: pyautogui.mouseDown(button='left') time.sleep(1) pyautogui.mouseUp(button='left') x = 0
рдФрд░ рдорд┐рдиреА-рдЧреЗрдо рд╣реА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЬреАрддрд╛ рд╣реИред

рд╣рдо рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рдкреВрд░реА рдмрд╛рдд рдбрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред
рдлрд┐рд░ рд╣рдо рдореВрд▓ рднрд╛рдЧ рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ рд╣рдореЗрдВ рдлреНрд▓реЛрдЯ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рд╕рдм рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдлреНрд▓реЛрдЯ рдХрд╣рд╛рдВ рдлреЗрдВрдХрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдлреНрд▓реЛрдЯ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрди рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд╛рдиреА рдореЗрдВ рдлреЗрдВрдХрд╛ рдЧрдпрд╛ рдлреНрд▓реЛрдЯ рд╡рд┐рднрд┐рдиреНрди рдХреЛрдгреЛрдВ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рдмрд╣рддрд╛ рд╣реИред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЙрд╕ рдЕрд▓рдЧ рддрд░реАрдХреЗ рдХреЛ рдЕрдкрдирд╛рдПрдВрдЧреЗред рдЗрд╕рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЯреНрд░реИрдХ рдХрд┐рдП рдЧрдП рдЯреБрдХрдбрд╝реЗ рдХреЗ рдЕрдВрджрд░ рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рдЕрдВрддрд░ рд╣реИред рдЬреЛ, рдЕрдЧрд░ рдХреЛрдИ рдлреНрд▓реЛрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╢реВрдиреНрдп рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИред
рдирддреАрдЬрддрди, рдЗрд╖реНрдЯрддрдо рдореВрд▓реНрдп рдорд┐рд▓рд╛, рдЬрд┐рд╕ рдкрд░ рдлреНрд▓реЛрдЯ рдХреЗ рд▓рд╛рдкрддрд╛ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рд╣рдо рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХреЛрдб def screen_record(): sct = mss.mss() last_time = time.time() while(True): img = sct.grab(mon) print('loop took {} seconds'.format(time.time() - last_time)) last_time = time.time() img = np.array(img) processed_image = process_image(img) mean = np.mean(processed_image) print('mean = ', mean) if mean <= float(0.11): print('SSSSSSSS ') pyautogui.click(button='left') break return else: time.sleep(0.01) continue return if cv2.waitKey(25) & 0xFF == ord('q'): cv2.destroyAllWindows() break
рдФрд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рдорд╛рдЙрд╕ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рд╣рдордиреЗ рдЗрд╕реЗ рдлрдВрдХреНрд╢рди рдореЗрдВ рднреА рд░рдЦрд╛ред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ, рд╣рдо рдмрд╕ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдореЗрдВ рд╣рдо рдПрдХ рдордЫрд▓реА рдкрдХрдбрд╝рдиреЗ рд╡рд╛рд▓реА рдЫрдбрд╝реА рдлреЗрдВрдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд╣рд▓реЗ рдФрд░ рджреВрд╕рд░реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдмрд╛рд░реА-рдмрд╛рд░реА рд╕реЗ рдХрд░рддреЗ рд╣реИрдВред
while "": time.sleep(1) pyautogui.moveTo(431,175,duration=1) pyautogui.mouseDown(button='left') pyautogui.moveTo(450.200,duration=1) pyautogui.mouseUp(button='left') time.sleep(2) screen_record() time.sleep(0.01) ss()
рдпрд╣рд╛рдБ рдПрдХ рдкреВрд░реНрдг рд╡реАрдбрд┐рдпреЛ рдирд┐рд░реНрджреЗрд╢ рдФрд░ рдЗрд╕ рдмреЙрдЯ рдХреЗ рдХрд╛рдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдЖрдкрдХреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдордВрдЬрд╕реНрдп рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рдирдВрдмрд░ рдореЗрд░реЗ рдореЙрдирд┐рдЯрд░, рд╕реНрдерд╛рди, рдЪрд░рд┐рддреНрд░ рдФрд░ рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЪреБрдиреЗ рдЧрдП рд╣реИрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕рдХреНрд╖рдо рдЕрдЬрдЧрд░ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред
рдкреВрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ:
рдХреЛрдб import numpy as np import cv2 from mss.linux import MSS as mss from PIL import Image import time import pyautogui as pg import imutils import mss import numpy import pyautogui template = cv2.imread("2019-07-02_06-55_1.png", cv2.IMREAD_GRAYSCALE) w, h = template.shape[::-1] color_yellow = (0,255,255) mon = {'top': 80, 'left': 350, 'width': 100, 'height': 100} def process_image(original_image): processed_image = cv2.cvtColor(original_image, cv2.COLOR_BGR2GRAY) processed_image = cv2.Canny(processed_image, threshold1=200, threshold2=300) return processed_image def ss(): op = 1 with mss.mss() as sct: monitor = {"top": 40, "left": 0, "width": 800, "height": 640} while "Screen capturing": last_time = time.time() img = numpy.array(sct.grab(monitor)) gray_frame = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) res = cv2.matchTemplate(gray_frame, template, cv2.TM_CCOEFF_NORMED) loc = np.where(res >= 0.7) op += 1 print (op) for pt in zip(*loc[::-1]): cv2.rectangle(img, pt, (pt[0] + w, pt[1] + h), (0, 255, 0), 3) for p in img: pts = (pt[0],pt[1]) x = (pt[0]) y = (pt[1]) print (x) if 100 < x < 490: pyautogui.mouseDown(button='left') time.sleep(2) pyautogui.mouseUp(button='left') x = 0 break else: continue break else: continue break key = cv2.waitKey(1) if cv2.waitKey(25) & 0xFF == ord("q"): cv2.destroyAllWindows() if op > 35: return def screen_record(): sct = mss.mss() last_time = time.time() while(True): img = sct.grab(mon) print('loop took {} seconds'.format(time.time() - last_time)) last_time = time.time() img = np.array(img) processed_image = process_image(img) mean = np.mean(processed_image) print('mean = ', mean) if mean <= float(0.11): print('SSSSSSSS ') pyautogui.click(button='left') break return else: time.sleep(0.01) continue return if cv2.waitKey(25) & 0xFF == ord('q'): cv2.destroyAllWindows() break while "": time.sleep(1) pyautogui.moveTo(431,175,duration=1) pyautogui.mouseDown(button='left') pyautogui.moveTo(450.200,duration=1) pyautogui.mouseUp(button='left') time.sleep(2) screen_record() time.sleep(0.01) ss()
рдЬреЛ рд▓реЛрдЧ рдпрд╣ рдХрд╣рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдордп рдХреА рдмрд░реНрдмрд╛рджреА рд╣реИ, рдореИрдВ рдиреЛрдЯрд┐рд╕ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ, рдЖрдк рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмреИрд▓рд┐рд╕реНрдЯрд┐рдХ рдорд┐рд╕рд╛рдЗрд▓реЛрдВ рдХреЛ рдЙрдбрд╝рд╛рдиреЗ рдФрд░ рд╡рд┐рдХрд▓рд╛рдВрдЧ рд▓реЛрдЧреЛрдВ рдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдХрдВрдкреНрдпреВрдЯрд░ рджреГрд╖реНрдЯрд┐ рдХрд╛ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд╣рд╛рдВ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдЖрдкрдХреА рдЗрдЪреНрдЫрд╛ред
рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред