美文网首页
Python针对滑动验证码识别缺口相关操作

Python针对滑动验证码识别缺口相关操作

作者: 代码没写完还想上厕所 | 来源:发表于2021-11-19 13:16 被阅读0次
    import cv2
    
    
    def identify_gap(bg, tp, out):
        """
        bg: 背景图片
        tp: 缺口图片
        out:输出图片
        """
        # 读取背景图片和缺口图片
        bg_img = cv2.imread(bg)  # 背景图片
        tp_img = cv2.imread(tp)  # 缺口图片
    
        # 识别图片边缘
        bg_edge = cv2.Canny(bg_img, 100, 200)
        tp_edge = cv2.Canny(tp_img, 100, 200)
    
        # 转换图片格式
        bg_pic = cv2.cvtColor(bg_edge, cv2.COLOR_GRAY2RGB)
        tp_pic = cv2.cvtColor(tp_edge, cv2.COLOR_GRAY2RGB)
        # 缺口匹配
        res = cv2.matchTemplate(bg_pic, tp_pic, cv2.TM_CCOEFF_NORMED)
        min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)  # 寻找最优匹配
    
        # 绘制方框
        th, tw = tp_pic.shape[:2]
        tl = max_loc  # 左上角点的坐标
        br = (tl[0] + tw, tl[1] + th)  # 右下角点的坐标
        cv2.rectangle(bg_img, tl, br, (0, 0, 255), 2)  # 绘制矩形
        cv2.imwrite(out, bg_img)  # 保存在本地
    
        # 返回缺口的X坐标
        print(min_val, max_val, min_loc, max_loc)
        return tl[0]
    
    
    identify_gap('login_slider1.png', 'login_slider.png', 'login.png')
    
    # img = cv2.imread("login_slider.png")
    # cropped = img[0:158, 0:60]
    # cv2.imwrite("login_slider1.png", cropped)
    
    

    相关文章

      网友评论

          本文标题:Python针对滑动验证码识别缺口相关操作

          本文链接:https://www.haomeiwen.com/subject/xtnstrtx.html