原神自动对话剧情
- 视频地址:【原神自动对话剧情,附代码】 https://www.bilibili.com/video/BV1t5411e79J/?share_source=copy_web&vd_source=91103f439a8a41ea0b41d31764b980eb
- 创建一个文件夹,里面必须包含两个文件,一个是img,里面放着对话的界面,然后需要使用管理员权限运行yuanshen.py
- 注意分辨率,我的是1920X1080
代码
import pyautogui
import cv2
import numpy as np
import random
import time
import os
def getmse(img1,img2):
err = np.sum((img1.astype("float") - img2.astype("float")) ** 2)
err /= float(img1.shape[0] * img1.shape[1])
return err
def getgray(img,x1,y1,x2,y2):
img_gray=img[y1:y2,x1:x2]
return cv2.cvtColor(img_gray, cv2.COLOR_BGR2GRAY)
if __name__=="__main__":
cwd=os.getcwd()
mse_1=1000
mse_2=200
x1,y1,x2,y2=50,23,158,69 #左上角自动
x3,y3,x4,y4=945,1031,972,1056 #中下方黄色三角
x_1,y_1,x_2,y_2=1274,782,1322,832 #对话框
gray1_arr=[]
gray2_arr=[]
gray3_arr=[]
for im in os.listdir('./img'):
img=cv2.imread(os.path.join(cwd,"./img",im))
gray_1=getgray(img,x1,y1,x2,y2)
gray_2=getgray(img,x3,y3,x4,y4)
# gray_3=getgray(img,x_1,y_1,x_2,y_2)
gray1_arr.append(gray_1)
gray2_arr.append(gray_2)
# gray3_arr.append(gray_3)
# img_33=cv2.imread(os.path.join(cwd,"3.png"))
# gray_33=
while True:
xx=0
random_delay = random.randint(1,4)
screenshot = pyautogui.screenshot()
screenshot_np=np.array(screenshot)
img=cv2.cvtColor(screenshot_np,cv2.COLOR_RGB2BGR)
gray2 = getgray(img,x1,y1,x2,y2)
img_mes=img[y_1:y_2,x_1:x_2]
gray_3=getgray(img,x3,y3,x4,y4)
# 计算MSE
for x in gray1_arr:
err=getmse(x,gray2)
if err<=mse_1:
print('1',err)
pyautogui.click(x3+(x4-x3)//2,y3+(y4-y3)//2)
pyautogui.click(x_1+(x_2-x_1)//2+50,y_1+(y_2-y_1)//2)
xx=1
break
if xx:
time.sleep(random_delay)
continue
for x in gray2_arr:
err=getmse(x,gray_3)
if err<=mse_2:
print('2',err)
pyautogui.click(x3+(x4-x3)//2,y3+(y4-y3)//2)
pyautogui.click(x_1+(x_2-x_1)//2+50,y_1+(y_2-y_1)//2)
break
time.sleep(random_delay)
需要调试留言