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

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年5月26日
下一篇 2023年5月26日

相关推荐