一、前言
之前写了一篇关于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
测试代码执行结果文章来源:https://www.toymoban.com/news/detail-446095.html
/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
文章来源地址https://www.toymoban.com/news/detail-446095.html
到了这里,关于Python通用验证码识别OCR库ddddocr的安装使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!