当前位置: 首页 > news >正文

Python通用验证码识别OCR库ddddocr的安装使用

Python通用验证码识别OCR库ddddocr的安装使用

  • 一、前言
  • 二、Python安装(Python版本必须>=3.8)
  • 三、安装ddddocr
    • 3.1 解决ssl module 的问题
      • 3.1.1升级OpenSSL到1.1.1
      • 3.1.2 重新编绎Python
    • 3.2 yum安装ddddocr
  • 四、写代码测试ddddocr识别效果


一、前言

之前写了一篇关于java使用tess4j进行图片文字识别.md的,对于应付简单的数字识别还是能应付,但总体效果、识别率很一般,后来同事找到了这一篇写的,(亲测好用便捷)Python通用验证码识别OCR库ddddocr的安装使用教程,试用了下确实效果要好很多,因此也记录一下,算是白嫖了这篇文章自己的一个使用总结,细化了里面的一些安装过程,具体如下说明。

ddddocr项目地址:https://github.com/sml2h3/ddddocr
安装环境: linux centos7.x

二、Python安装(Python版本必须>=3.8)

ddddocr的使用需要python3.8以上,默认centos系统里面一般自带了2.7版本,因此python3的安装就采用全新安装与python的2版本同时共存,之前也写了一篇如下:centos7安装python3简单步骤,可参与这篇进行安装,采用的是3.10.0的源码编绎方式。

#准备依赖
yum -y install gcc
yum -y install zlib-devel

#下载源码
wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz

#解压安装
tar -xvf Python-3.10.0.tgz
cd Python-3.10.0
./configure --prefix=/usr/local/python3
make && make install

#软连接
ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3

#查看安装后的版本号
python3 -V

#测试hello world脚本准备
cat > hello.py << EOF
#!/usr/local/bin/python3

# -*- coding: utf8 -*-

print("hello world")

EOF

#执行查看测试效果
[testuser@localhost ~]$ /usr/local/bin/python3 hello.py 
hello worlds

三、安装ddddocr

安装前先要解决python3的ssl module的问题,直接执行以下命令安装将报错

pip3 install ddddocr

错误日志如下:
[testuser@localhost ~]$ pip3 install ddddocr Defaulting to user installation because normal site-packages is not writeable WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

3.1 解决ssl module 的问题

详细步骤在centos7安装python3简单步骤这个文章里面也有,摘出来内容如下:

3.1.1升级OpenSSL到1.1.1

#下载源码
wget https://codeload.github.com/openssl/openssl/zip/OpenSSL_1_1_1-stable

#解压
unzip openssl-OpenSSL_1_1_1-stable.zip

#安装,指定安装路径为/usr/local/openssl
cd openssl-OpenSSL_1_1_1-stable/
./config --prefix=/usr/local/openssl
make && make install

# .config进如果提示需要安装You need Perl 5,执行以下命令解决
yum -y install perl
然后重新执行./config --prefix=/usr/local/openssl,和make && make install命令进行编绎安装openssl

#备份旧文件并加载新版本配置
mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/lib64/openssl /usr/lib64/openssl.old
mv /usr/lib64/libssl.so /usr/lib64/libssl.so.old
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so /usr/lib64/libssl.so
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig -v 

#查看版本
openssl version

#安装成功后的版本日志如:
[root@localhost openssl-OpenSSL_1_1_1-stable]# openssl version
OpenSSL 1.1.1u-dev  xx XXX xxxx

3.1.2 重新编绎Python

升级OpenSSL到1.1.1后,重新编绎安装下python3

cd Python-3.10.0
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl
make & make install

至此 ssl module的问题解决完毕。

3.2 yum安装ddddocr

解决了上面的ssl module问题后,直接使用pip3安装ddddocr就可以了,如下:

pip3 install ddddocr

或者指定国内镜像进行安装

pip3 install ddddocr -i https://pypi.tuna.tsinghua.edu.cn/simple/

安装好后提示一点点警告
WARNING: You are using pip version 21.2.3; however, version 23.0.1 is available.
You should consider upgrading via the ‘/usr/local/python3/bin/python3.10 -m pip install --upgrade pip’ command.
根据提示执行pip3的升级操作

/usr/local/python3/bin/python3.10 -m pip install --upgrade pip

升级后再查看pip版本

pip3 -V

至此ddddocr环境安装完毕,可以写图片识别代码进行测试了。

四、写代码测试ddddocr识别效果

准备代码如下,此代码的功能为执行python脚本,指定命令行参数位置1上的图片名称路径,通过ddddocr识别后,打印出识别的结果:

cat > DdddocrTest.py << EOF
#!/usr/local/bin/python3
# -*- coding: utf8 -*-

import ddddocr
import sys

class DdddocrTest(object):
    '''
    Ddddocr test : sys.argv[1] as the codeImg parameter
    Useage example: /usr/local/bin/python3 DdddocrTest.py codeImage.jpg
    '''
    def ocrTest(self):

        ocr = ddddocr.DdddOcr()
        with open(sys.argv[1], 'rb') as f:
            img_bytes = f.read()
        res = ocr.classification(img_bytes)
        print('识别出的验证码为:' + res)
        
if __name__ == '__main__':
    obj = DdddocrTest()
    obj.ocrTest()     
EOF

准备好三张图片

code.png
在这里插入图片描述
code1.png
在这里插入图片描述
code2.png
在这里插入图片描述
code3.png
在这里插入图片描述

测试代码执行结果

/usr/local/bin/python3 DdddocrTest.py code.png
/usr/local/bin/python3 DdddocrTest.py code1.png
/usr/local/bin/python3 DdddocrTest.py code2.png
/usr/local/bin/python3 DdddocrTest.py code3.png

在这里插入图片描述

相关文章:

  • 「无服务器架构」无服务器架构是应用程序的正确选择?需要考虑利弊。
  • Pycharm中修改git提交代码的账户和用户名【Git追溯注解,git blame】
  • 中介变量、调节变量与协变量
  • Java应用,如何提高系统健壮性
  • React 简介
  • 如何使用LaTeX中的命令【博文生成:ChatGPT 4】
  • Linux C/C++并发编程实战(5)内存屏障是什么?
  • 实验记录项目
  • 蓝桥冲刺31天之325
  • 不确定的市场,确定的增长,海尔智家2022全球再逆增
  • 高校智慧校园建设案例|某药科大学智慧校园建设实践
  • Python 3.7 有什么新变化 - 新功能
  • 【每日一题Day166】LC1053交换一次的先前排列 | 贪心
  • 蓝桥杯 --- 递归与递推(习题)
  • Ubuntu搭建web站点并发布公网访问【内网穿透】
  • 【我在异世界学Linux】认识操作系统 | 理解管理 | 系统调用(System Call)
  • 【Elastic (ELK) Stack 实战教程】07、Logstash 快速入门及 Input、Filter 插件讲解
  • 版本控制 | 告别繁琐,P4VJS带来全新的Diff体验
  • 老鼠迷宫,汉诺塔,八皇后,回溯算法案例
  • MATLAB :【12】手把手教你在Linux以命令行方式(静默方式/非图形化方式)安装MATLAB(正版)
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉