最新的腾讯滑块也是进行了一小部分更新,滑块也变的非常千奇百怪。
之前写的处理图像的方法可能太粗糙,有的背景图无法识别,可以在模板匹配之前,加个图像处理。
with open(f"./img/sprite_{random_num}.png", "rb") as f:small_bytes = BytesIO(f.read())small = Image.open(small_bytes).convert('RGBA')# 对小图进行裁剪和灰度化small = small.crop((140, 490, 260, 610))small_gray = np.array(small.convert('L')) # 转换为灰度图small_gray = cv2.equalizeHist(small_gray)# 对大图进行灰度化big_gray = np.array(big.convert('L')) # 转换为灰度图# 图像增强(直方图均衡化)big_gray = cv2.equalizeHist(big_gray)small_edges = cv2.Canny(small_gray, 50, 150)big_edges = cv2.Canny(big_gray, 50, 150)result = cv2.matchTemplate(big_edges, small_edges, cv2.TM_CCOEFF_NORMED)
就能更好的适配