💻 源代码
import cv2
import numpy as np
from selenium import webdriver
def find_gap(bg_img, gap_img):
"""识别滑块缺口位置"""
bg = cv2.imread(bg_img)
gap = cv2.imread(gap_img)
# 边缘检测
bg_gray = cv2.cvtColor(bg, cv2.COLOR_BGR2GRAY)
gap_gray = cv2.cvtColor(gap, cv2.COLOR_BGR2GRAY)
# 模板匹配
res = cv2.matchTemplate(bg_gray, gap_gray, cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
return max_loc[0]
def get_track(distance):
"""生成滑动轨迹"""
track = []
current = 0
mid = distance * 4 / 5
t = 0.2
v = 0
while current < distance:
if current < mid:
a = 2
else:
a = -3
v0 = v
v = v0 + a * t
move = v0 * t + 0.5 * a * t * t
current += move
track.append(round(move))
return track
# 示例
distance = find_gap('bg.png', 'gap.png')
track = get_track(distance)
print(f"滑动距离: {distance}, 轨迹: {track}")