Python系列
前言
该代码可解决登录验证的普通滑块验证码验证过程,分享仅为技术探讨。
一、技术要点
cv2.matchTemplate 是OpenCV库中的一个函数,用于在一幅图像中查找与模板图像匹配的部分。
二、使用步骤
1.引入库
代码如下:
import base64
from PIL import Image
from io import BytesIO
import cv2
import os
2.构建方法
代码如下:
def getSliderLocal(b64Background, b64Slider):
tempAddr = os.getenv('TEMP')
Image.open(BytesIO(base64.b64decode(b64Background.split(",")[1]))).save(
os.path.join(tempAddr, 'background.png')) # type: ignore
Image.open(BytesIO(base64.b64decode(b64Slider.split(",")[1]))).save(
os.path.join(tempAddr, 'slider.png')) # type: ignore
backgroundPic = cv2.cvtColor(cv2.Canny(cv2.imread(os.path.join(
tempAddr, 'background.png')), 100, 200), cv2.COLOR_GRAY2BGR) # type: ignore
sliderPic = cv2.cvtColor(cv2.Canny(cv2.imread(os.path.join(
tempAddr, 'slider.png')), 100, 200), cv2.COLOR_GRAY2BGR) # type: ignore
res = cv2.matchTemplate(backgroundPic, sliderPic, cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
return max_loc[0]