使用Python的OpenCV模块识别滑动验证码的缺口

最近终于找到一个好的方法,使用Python的OpenCV模块识别滑动验证码的缺口,可以将滑动验证码中的缺口识别出来了。

测试使用如下两张图片:

target.jpg

template.png

现在想要通过“template.png”在“target.jpg”中找到对应的缺口,代码实现如下:

注:想学习Python的小伙伴们

可以

进群:984137898

领取从0到1完整学习资料 视频  精品书籍 一个月经典笔记和99道练习题及答案

# encoding=utf8importcv2importnumpyasnpdefshow(name):cv2.imshow('Show', name)    cv2.waitKey(0)    cv2.destroyAllWindows()defmain():otemp ='template.png'oblk ='target.jpg'target = cv2.imread(otemp,0)    template = cv2.imread(oblk,0)    w, h = target.shape[::-1]    temp ='temp.jpg'targ ='targ.jpg'cv2.imwrite(temp, template)    cv2.imwrite(targ, target)    target = cv2.imread(targ)    target = cv2.cvtColor(target, cv2.COLOR_BGR2GRAY)    target = abs(255- target)    cv2.imwrite(targ, target)    target = cv2.imread(targ)    template = cv2.imread(temp)    result = cv2.matchTemplate(target, template, cv2.TM_CCOEFF_NORMED)    x, y = np.unravel_index(result.argmax(), result.shape)# 展示圈出来的区域cv2.rectangle(template, (y, x), (y + w, x + h), (7,249,151),2)    show(template)if__name__ =='__main__':    main()

运行结果见本文最上面,通过运行结果可以知道,已经正确的找到了缺口位置。

你可能感兴趣的:(使用Python的OpenCV模块识别滑动验证码的缺口)