python3 滑动验证码1
说明
- 适用于同一张图片,其中copy的图片中存在一些差异内容
- 找到第一个差异的位置,计算出距离
- 适用于滑动验证码的一种
代码来源于网络
from PIL import Image
def compare_distance(image1, image2):
"""
拿到滑动验证码需要移动的距离
:param image1: 没有缺口的图片对象
:param image2: 带缺口的图片对象
:return: 需要移动的距离
"""
image1 = Image.open(image1)
image2 = Image.open(image2)
# image1 = image1.resize((268, 134)) # 缩放
threshold = 90
for i in range(0, image1.size[0]):
for j in range(0, image1.size[1]):
pixel1 = image1.getpixel((i, j))
pixel2 = image2.getpixel((i, j))
res_r = abs(pixel1[0] - pixel2[0]) # 计算RGB差
res_g = abs(pixel1[1] - pixel2[1]) # 计算RGB差
res_b = abs(pixel1[2] - pixel2[2]) # 计算RGB差
# print(res_r)
# print(res_g)
# print(res_b)
if res_r > threshold and res_g > threshold and res_b > threshold:
return i # 需要移动的距离
if __name__ == '__main__':
image1_ = "1.jpg"
image2_ = "2.jpg"
offset = compare_distance(image1_, image2_)
print(offset)