有一个脚本可以拍摄第一个屏幕截图
def screenshot_one(self):
image_1 = pyautogui.screenshot(region = (5, 169, 1427, 559))
image_1.save(r'{}\data\screenshot\image_1.png'.format(self.BASE_DIR))
return image_1
第二个截图
def screenshot_two(self):
image_2 = pyautogui.screenshot(region = (5, 169, 1427, 559))
image_2.save(r'{}\data\screenshot\image_2.png'.format(self.BASE_DIR))
return image_2
然后找出它们之间的区别
def comparison(self, image_1, image_2):
result = ImageChops.difference(image_1, image_2)
result.save(r'{0}\data\screenshot\screen.png'.format(self.BASE_DIR))
如何获取1920х1080脚本突出显示的对象在屏幕上的坐标作为第一张和第二张截图之间的差异,即第三张截图上白色圆圈的坐标?
整个代码
# -*- coding: utf-8 -*-
from PIL import Image, ImageChops
from pathlib import Path
import pyautogui
import keyboard
import time
class Object_search:
def __init__(self):
self.BASE_DIR = Path(__file__).resolve().parent
def screenshot_one(self):
image_1 = pyautogui.screenshot(region = (5, 169, 1427, 559))
image_1.save(r'{}\data\screenshot\image_1.png'.format(self.BASE_DIR))
return image_1
def screenshot_two(self):
image_2 = pyautogui.screenshot(region = (5, 169, 1427, 559))
image_2.save(r'{}\data\screenshot\image_2.png'.format(self.BASE_DIR))
return image_2
def comparison(self, image_1, image_2):
result = ImageChops.difference(image_1, image_2)
result.save(r'{0}\data\screenshot\screen.png'.format(self.BASE_DIR))
while True:
if keyboard.is_pressed('5'):
print('image_1')
image_1 = Object_search().screenshot_one()
time.sleep(0.1)
elif keyboard.is_pressed('6'):
image_2 = Object_search().screenshot_two()
print('image_2')
time.sleep(0.1)
elif keyboard.is_pressed('7'):
print('comparison')
comparison = Object_search().comparison(image_1, image_2)
time.sleep(0.1)
elif keyboard.is_pressed('8'):
print('exit')
break



coords - 圆的左上角。
UPD
我从旧项目中找到了另一种选择:
结论: