精华内容
下载资源
问答
  • Python实现验证码识别

    2020-12-17 09:44:40
    python爬虫爬取某些网站的验证码的时候可能会遇到验证码识别的问题,现在的验证码大多分为四类:  1、计算验证码  2、滑块验证码  3、识图验证码  4、语音验证码  这篇博客主要写的就是识图验证码,识别的是...
  • 主要为大家详细介绍了python实现验证码识别功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤感时花溅泪,恨别鸟惊心。大家好,我是小五。在很久之前,分享过一次Pytho...

    点击上方“Python爬虫与数据挖掘”,进行关注

    回复“书籍”即可获赠Python从入门到进阶共10本电子书

    感时花溅泪,恨别鸟惊心。

    大家好,我是小五。

    在很久之前,分享过一次Python代码实现验证码识别的办法。

    当时采用的是pillow+pytesseract,优点是免费,较为易用。但其识别精度一般,若想要更高要求的验证码识别,初学者就只能去选择使用百度API接口了。

    但其实百度API接口和pytesseract其实都需要进行前期配置,对于初学者来说就不太友好了。

    而且百度API必须要联网,对于某些机器不能联网的朋友而言,就得pass了

    最近群里有位群友分享了一个新库,试用一下发现非常实用,特意今天分享给大家。

    Github地址:https://github.com/sml2h3/ddddocr

    该库名也是非常有趣 —— ddddocr(谐音带带弟弟OCR)

    环境要求

    python >= 3.8
    Windows/Linux/Macox..
    

    可以通过以下命令安装

    pip install ddddocr
    

    参数说明

    在网上随机寻找了一个验证码图片,使用这个库来实战一下。

    来源:百度搜索
    import ddddocr
    
    ocr = ddddocr.DdddOcr()
    with open('1.png', 'rb') as f:
        img_bytes = f.read()
    res = ocr.classification(img_bytes)
    
    print(res)
    

    成功识别出来了验证码文字!

    而且优点也非常明显:首先代码非常精简,对比前文提到的两种方法,不需要额外设置环境变量等等,5行代码即可轻松识别验证码图片。另一方面,我们使用魔法命令%%time也测试出来吗,这段代码识别速度非常快。

    下面用更多的验证码图片继续测试:

    我又找了6个验证码图片来测试,观察结果,发现这类简单的验证码基本可以进行快速识别。但也有部分结果有问题——字母大小写没有进行区分(比如第6张图片)。

    总而言之,如果你需要进行验证码识别,且对精度要求不是过高。

    那么,带带弟弟OCR(ddddocr)这个库是一个不错的选择~

    ------------------- End -------------------

    往期精彩文章推荐:

    欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

    想加入Python学习群请在后台回复【入群

    万水千山总是情,点个【在看】行不行

    /今日留言主题/

    随便说一两句吧~~

    展开全文
  • 主要介绍了Python3实现的简单验证码识别功能,涉及Python针对验证码图片识别处理相关操作技巧,需要的朋友可以参考下
  • 很久之前,分享过一次Python代码实现验证码识别的办法。 当时采用的是pillow+pytesseract,优点是免费,较为易用。但其识别精度一般,若想要更高要求的验证码识别,初学者就只能去选择使用百度API接口了。 但其实...
    很久之前,分享过一次Python代码实现验证码识别的办法。
    

    当时采用的是pillow+pytesseract,优点是免费,较为易用。但其识别精度一般,若想要更高要求的验证码识别,初学者就只能去选择使用百度API接口了。

    但其实百度API接口和pytesseract其实都需要进行前期配置,对于初学者来说就不太友好了。

    而且百度API必须要联网,对于某些机器不能联网的朋友而言,就得pass了

    最近群里有位群友分享了一个新库,试用一下发现非常实用,特意今天分享给大家。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

    Github地址:https://github.com/sml2h3/ddddocr

    该库名也是非常有趣 —— ddddocr(谐音带带弟弟OCR)

    环境要求

    python >= 3.8Windows/Linux/Macox..
    

    可以通过以下命令安装

    pip install ddddocr
    

    参数说明

    5行Python实现验证码识别,太稳了

    在网上随机寻找了一个验证码图片,使用这个库来实战一下。

    5行Python实现验证码识别,太稳了

    来源:百度搜索

    import ddddocr

    ocr = ddddocr.DdddOcr()
    with open(‘1.png’, ‘rb’) as f:
    img_bytes = f.read()
    res = ocr.classification(img_bytes)

    print(res)

    5行Python实现验证码识别,太稳了

    成功识别出来了验证码文字!

    而且优点也非常明显:首先代码非常精简,对比前文提到的两种方法,不需要额外设置环境变量等等,5行代码即可轻松识别验证码图片。另一方面,我们使用魔法命令%%time也测试出来吗,这段代码识别速度非常快。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

    下面用更多的验证码图片继续测试:

    5行Python实现验证码识别,太稳了

    我又找了6个验证码图片来测试,观察结果,发现这类简单的验证码基本可以进行快速识别。但也有部分结果有问题——字母大小写没有进行区分(比如第6张图片)。

    总而言之,如果你需要进行验证码识别,且对精度要求不是过高。

    那么,带带弟弟OCR(ddddocr)这个库是一个不错的选择~

    展开全文
  • 最近在折腾验证码识别。最终的脚本的识别率在92%左右,9000张验证码大概能识别出八千三四百张左右。好吧,其实是验证码太简单。下面就是要识别的验证码。 我主要用的是Python中的PIL库。 首先进行二值化处理。由于...
  • 主要给大家介绍了关于python验证码识别教程之滑动验证码的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 自动识别验证码源码
  • 今天咋们继续利用pillow和pytesseract来实现验证码识别 一、环境配置 需要 pillow 和 pytesseract 这两个库,pip install 安装就好了。 pipinstallpillow-ihttp://pypi.douban....

    今天咋们继续利用pillow和pytesseract来实现验证码的识别

    一、环境配置

    • 需要 pillow 和 pytesseract 这两个库,pip install 安装就好了。

    pip install pillow -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
    pip install pytesseract -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
    
    • 安装好Tesseract-OCR.exe

    • pytesseract 库的配置:搜索找到pytesseract.py,打开该.py文件,找到 tesseract_cmd,改变它的值为刚才安装 tesseract.exe 的路径。

    图片

    二、验证码识别

    识别验证码,需要先对图像进行预处理,去除会影响识别准确度的线条或噪点,提高识别准确度。

    实例1

    import cv2 as cv
    import pytesseract
    from PIL import Image
    
    
    def recognize_text(image):
        # 边缘保留滤波  去噪
        dst = cv.pyrMeanShiftFiltering(image, sp=10, sr=150)
        # 灰度图像
        gray = cv.cvtColor(dst, cv.COLOR_BGR2GRAY)
        # 二值化
        ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
        # 形态学操作   腐蚀  膨胀
        erode = cv.erode(binary, None, iterations=2)
        dilate = cv.dilate(erode, None, iterations=1)
        cv.imshow('dilate', dilate)
        # 逻辑运算  让背景为白色  字体为黑  便于识别
        cv.bitwise_not(dilate, dilate)
        cv.imshow('binary-image', dilate)
        # 识别
        test_message = Image.fromarray(dilate)
        text = pytesseract.image_to_string(test_message)
        print(f'识别结果:{text}')
    
    
    src = cv.imread(r'./test/044.png')
    cv.imshow('input image', src)
    recognize_text(src)
    cv.waitKey(0)
    cv.destroyAllWindows()
    

    运行效果如下:

    识别结果:3n3D
    
    Process finished with exit code 0
    

    图片

    实例2

    import cv2 as cv
    import pytesseract
    from PIL import Image
    
    
    def recognize_text(image):
        # 边缘保留滤波  去噪
        blur =cv.pyrMeanShiftFiltering(image, sp=8, sr=60)
        cv.imshow('dst', blur)
        # 灰度图像
        gray = cv.cvtColor(blur, cv.COLOR_BGR2GRAY)
        # 二值化
        ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
        print(f'二值化自适应阈值:{ret}')
        cv.imshow('binary', binary)
        # 形态学操作  获取结构元素  开操作
        kernel = cv.getStructuringElement(cv.MORPH_RECT, (3, 2))
        bin1 = cv.morphologyEx(binary, cv.MORPH_OPEN, kernel)
        cv.imshow('bin1', bin1)
        kernel = cv.getStructuringElement(cv.MORPH_OPEN, (2, 3))
        bin2 = cv.morphologyEx(bin1, cv.MORPH_OPEN, kernel)
        cv.imshow('bin2', bin2)
        # 逻辑运算  让背景为白色  字体为黑  便于识别
        cv.bitwise_not(bin2, bin2)
        cv.imshow('binary-image', bin2)
        # 识别
        test_message = Image.fromarray(bin2)
        text = pytesseract.image_to_string(test_message)
        print(f'识别结果:{text}')
    
    
    src = cv.imread(r'./test/045.png')
    cv.imshow('input image', src)
    recognize_text(src)
    cv.waitKey(0)
    cv.destroyAllWindows()
    
    

    运行效果如下:

    二值化自适应阈值:181.0
    识别结果:8A62N1
    
    Process finished with exit code 0
    

    图片

    实例3

    import cv2 as cv
    import pytesseract
    from PIL import Image
    
    
    def recognize_text(image):
        # 边缘保留滤波  去噪
        blur = cv.pyrMeanShiftFiltering(image, sp=8, sr=60)
        cv.imshow('dst', blur)
        # 灰度图像
        gray = cv.cvtColor(blur, cv.COLOR_BGR2GRAY)
        # 二值化  设置阈值  自适应阈值的话 黄色的4会提取不出来
        ret, binary = cv.threshold(gray, 185, 255, cv.THRESH_BINARY_INV)
        print(f'二值化设置的阈值:{ret}')
        cv.imshow('binary', binary)
        # 逻辑运算  让背景为白色  字体为黑  便于识别
        cv.bitwise_not(binary, binary)
        cv.imshow('bg_image', binary)
        # 识别
        test_message = Image.fromarray(binary)
        text = pytesseract.image_to_string(test_message)
        print(f'识别结果:{text}')
    
    
    src = cv.imread(r'./test/045.jpg')
    cv.imshow('input image', src)
    recognize_text(src)
    cv.waitKey(0)
    cv.destroyAllWindows()
    
    

    运行效果如下:

    二值化设置的阈值:185.0
    识别结果:7364
    
    Process finished with exit code 0
    

    图片

    结语

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小编的支持。

    展开全文
  • Python 代码实现验证码识别,很稳

    万次阅读 多人点赞 2020-09-24 17:11:00
    作者:叶庭云源自:快学python昨天十行代码实现文字识别,感觉怎样,是不是很爽今天咋们继续利用pillow和pytesseract来实现验证码识别一、环境配置需要 pillow 和 ...


    作者:叶庭云

    源自:快学python

    昨天十行代码实现文字识别,感觉怎样,是不是很爽

    今天咋们继续利用pillow和pytesseract来实现验证码的识别

    一、环境配置

    • 需要 pillow 和 pytesseract 这两个库,pip install 安装就好了。

    pip install pillow -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
    pip install pytesseract -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
    
    • 安装好Tesseract-OCR.exe

    • pytesseract 库的配置:搜索找到pytesseract.py,打开该.py文件,找到 tesseract_cmd,改变它的值为刚才安装 tesseract.exe 的路径。

    二、验证码识别

    识别验证码,需要先对图像进行预处理,去除会影响识别准确度的线条或噪点,提高识别准确度。

    实例1

    import cv2 as cv
    import pytesseract
    from PIL import Image
    
    
    def recognize_text(image):
        # 边缘保留滤波  去噪
        dst = cv.pyrMeanShiftFiltering(image, sp=10, sr=150)
        # 灰度图像
        gray = cv.cvtColor(dst, cv.COLOR_BGR2GRAY)
        # 二值化
        ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
        # 形态学操作   腐蚀  膨胀
        erode = cv.erode(binary, None, iterations=2)
        dilate = cv.dilate(erode, None, iterations=1)
        cv.imshow('dilate', dilate)
        # 逻辑运算  让背景为白色  字体为黑  便于识别
        cv.bitwise_not(dilate, dilate)
        cv.imshow('binary-image', dilate)
        # 识别
        test_message = Image.fromarray(dilate)
        text = pytesseract.image_to_string(test_message)
        print(f'识别结果:{text}')
    
    
    src = cv.imread(r'./test/044.png')
    cv.imshow('input image', src)
    recognize_text(src)
    cv.waitKey(0)
    cv.destroyAllWindows()
    

    运行效果如下:

    识别结果:3n3D
    
    Process finished with exit code 0
    

    实例2

    import cv2 as cv
    import pytesseract
    from PIL import Image
    
    
    def recognize_text(image):
        # 边缘保留滤波  去噪
        blur =cv.pyrMeanShiftFiltering(image, sp=8, sr=60)
        cv.imshow('dst', blur)
        # 灰度图像
        gray = cv.cvtColor(blur, cv.COLOR_BGR2GRAY)
        # 二值化
        ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
        print(f'二值化自适应阈值:{ret}')
        cv.imshow('binary', binary)
        # 形态学操作  获取结构元素  开操作
        kernel = cv.getStructuringElement(cv.MORPH_RECT, (3, 2))
        bin1 = cv.morphologyEx(binary, cv.MORPH_OPEN, kernel)
        cv.imshow('bin1', bin1)
        kernel = cv.getStructuringElement(cv.MORPH_OPEN, (2, 3))
        bin2 = cv.morphologyEx(bin1, cv.MORPH_OPEN, kernel)
        cv.imshow('bin2', bin2)
        # 逻辑运算  让背景为白色  字体为黑  便于识别
        cv.bitwise_not(bin2, bin2)
        cv.imshow('binary-image', bin2)
        # 识别
        test_message = Image.fromarray(bin2)
        text = pytesseract.image_to_string(test_message)
        print(f'识别结果:{text}')
    
    
    src = cv.imread(r'./test/045.png')
    cv.imshow('input image', src)
    recognize_text(src)
    cv.waitKey(0)
    cv.destroyAllWindows()
    
    

    运行效果如下:

    二值化自适应阈值:181.0
    识别结果:8A62N1
    
    Process finished with exit code 0
    

    实例3

    import cv2 as cv
    import pytesseract
    from PIL import Image
    
    
    def recognize_text(image):
        # 边缘保留滤波  去噪
        blur = cv.pyrMeanShiftFiltering(image, sp=8, sr=60)
        cv.imshow('dst', blur)
        # 灰度图像
        gray = cv.cvtColor(blur, cv.COLOR_BGR2GRAY)
        # 二值化  设置阈值  自适应阈值的话 黄色的4会提取不出来
        ret, binary = cv.threshold(gray, 185, 255, cv.THRESH_BINARY_INV)
        print(f'二值化设置的阈值:{ret}')
        cv.imshow('binary', binary)
        # 逻辑运算  让背景为白色  字体为黑  便于识别
        cv.bitwise_not(binary, binary)
        cv.imshow('bg_image', binary)
        # 识别
        test_message = Image.fromarray(binary)
        text = pytesseract.image_to_string(test_message)
        print(f'识别结果:{text}')
    
    
    src = cv.imread(r'./test/045.jpg')
    cv.imshow('input image', src)
    recognize_text(src)
    cv.waitKey(0)
    cv.destroyAllWindows()
    
    

    运行效果如下:

    二值化设置的阈值:185.0
    识别结果:7364
    
    Process finished with exit code 0
    

    结语

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小编的支持。

    展开全文
  • 然后从某网站上下载大量同类型的验证码,人工标记上每个验证码的数值,由于此验证码识别容易就只标记了20个 开始预处理图片 图片是彩色的,我们要先让其变得简单变成灰度图像。 “灰度图像上每个像素的颜色值又...
  • Python图片验证码字母或数字通用识别代码,简单方便调用。Python图片验证码字母或数字通用识别代码,简单方便调用。Python图片验证码字母或数字通用识别代码,简单方便调用。Python图片验证码字母或数字通用识别代码...
  • 主要给大家介绍了关于python简单验证码识别实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
  • 之前有个爬虫需求,但每次请求都需要进行验证码识别,故需要ocr识别,推荐一个Python免费的验证码识别-ddddocr(谐音带带弟弟OCR) 安装 pip install ddddocr -i https://pypi.tuna.tsinghua.edu.cn/simple ...
  • 人工神经网络 基于CNN卷积神经网络 基于Python 实现图片验证码识别
  • python识别字符验证码
  • python 验证码图片识别源代码,适合学生课程设计、毕业设计参考资料。
  • 在本篇内容里小编给大家整理的是一篇关于python识别验证码的思路及解决方案,有需要的朋友们可以参考下。
  • (一)python爬虫验证码识别(去除干扰线)https://blog.csdn.net/weixin_40267472/article/details/81384624
  • 自带requests方式爬取验证码,pillow做图像处理提高识别率,tesseract识别验证码
  • 主要介绍了python自动识别验证码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,671
精华内容 7,468
关键字:

python实现验证码识别

python 订阅