python3 滑动验证码1

python3 滑动验证码1

说明

  1. 适用于同一张图片,其中copy的图片中存在一些差异内容
  2. 找到第一个差异的位置,计算出距离
  3. 适用于滑动验证码的一种

代码来源于网络

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值