Linux(Centos7)下进行OCR识别-pytesseract

一.环境准备

1.Leptonica 库安装与配置

Dart 复制代码
# 解压安装(一定要注意版本!!)

tar -zxvf leptonica-1.78.0.tar.gz

# 进入包文件夹

cd 你解压后的文件名

# 依次执行以下命令,进行程序编译,安装

./autogen.sh

./configure

make

make install

# 配置



# 修改profile

vim /etc/profile

# 添加信息 i

export LD_LIBRARY_PATH=/usr/local/lib

export LIBLEPT_HEADERSDIR=/usr/local/include

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

# 保存退出

# 刷新配置

source /etc/profile

2.tesseract 安装与配置

Dart 复制代码
#  下载(一定要注意版本!!)

wget http://www.XXX/tesseract-4.0.0.tar.gz

tar -xzvf tesseract-4.0.0.tar.gz

cd tesseract-5.2.0

./autogen.sh

./configure

make

make install

# 添加到环境变量



vim /etc/profile

# 添加以下字段:

PATH=$PATH:/usr/local/tesseract/bin

export PATH

export TESSDATA_PREFIX=/root/tessdata

export PATH=$PATH:$TESSDATA_PREFIX

# 刷新配置

source /etc/profile

3.升级GCC

没有源怎么办?更换源,先备份,然后新建文件

Dart 复制代码
yum install -y centos-release-scl

yum install devtoolset-8-gcc*

4.查看tesseract版本

Dart 复制代码
tesseract --version

# 查看可执行文件路径:

which tesseract

/usr/local/bin/tesseract

# 语言包存放位置

/usr/local/share/tessdata/

语言包下载(linux版本语言包)

二.测试代码

1.初步测试

测试代码:

python 复制代码
import pytesseract
from PIL import Image
import re
import cv2
import json

# 设置 Tesseract 路径(Windows需指定)
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
pytesseract.pytesseract.tesseract_cmd = r'D:\softwares\Tesseract-OCR\tesseract.exe' # 替换成你自己的程序路径

def extract_info_from_image(image_path):
    # 读取图片并预处理(灰度化、二值化)
    img = cv2.imread(image_path)
    # if img is None:
    #     print("错误:图像加载失败,请检查路径或文件格式")
    # else:
    #     gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
    # _, thresh = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY)
    
    # OCR 识别文本
    text = pytesseract.image_to_string(Image.fromarray(img), lang='chi_sim+eng')
    lines = [line.strip() for line in text.split('\n') if line.strip()]

    # 提取结构化数据,不同结果对应的处理不同,此处省略
    ######
    ######
    data = {}
    
    return data

# 调用函数并输出结果
result = extract_info_from_image("D:/pythonProjects/input_image/1.jpg")

测试结果:

2.测试精度低问题

数据增强,提高模型泛化性

3.解决Flask并发处理问题

方法一:使用geventeventlet库来在Flask中运行多线程

Dart 复制代码
pip install gevent  # 安装gevent

from gevent.pywsgi import WSGIServer   # flask启动脚本中新增导入包

server = WSGIServer(('0.0.0.0', 5000), app)   # 启动方式用WSGIServer

server.serve_forever()

方法二: 使用asyncioaiohttp库来处理异步请求

Dart 复制代码
pip install aiohttp  # 安装包


# 示例代码
from aiohttp import web
from flask import Flask, jsonify
import asyncio

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, World!"

async def init(loop):
    app_runner = web.AppRunner(app)
    await app_runner.setup()
    site = web.TCPSite(app_runner, '0.0.0.0', 5000)
    await site.start()

loop = asyncio.get_event_loop()
loop.run_until_complete(init(loop))
loop.run_forever()
相关推荐
枫叶林FYL14 小时前
项目八 云资源成本优化与治理平台
后端·python·自然语言处理·flask
泉飒14 小时前
某特定场景下的ocr增强方式
ocr
小陈phd18 小时前
多模态大模型学习笔记(三十八)——传统OCR技术机制:从DBNet到CRNN:吃透传统OCR两阶段范式的底层逻辑
笔记·学习·ocr
石榴树下的七彩鱼20 小时前
OCR API价格对比2026:身份证/发票/医疗票据识别哪家性价比最高?含Python对接+成本公式
开发语言·人工智能·python·ocr·图像识别·文字识别·api接口
东北洗浴王子讲AI20 小时前
从零搭建AI文学创作助手:基于API聚合站+Flask实现智能写诗、小说生成神器
人工智能·python·flask
sali-tec21 小时前
C# 基于OpenCv的视觉工作流-章56-OCR
图像处理·人工智能·opencv·算法·计算机视觉·ocr
编码者卢布21 小时前
【App Service】查看Application Insights自身SDK日志的方法示例
后端·python·flask
Mr.朱鹏1 天前
【Python 进阶 | 第四篇】Psycopg3 + Flask 实现 PostgreSQL CRUD 全流程:从连接池到RESTful接口
python·postgresql·flask·virtualenv·fastapi·pip·tornado
小敬爱吃饭2 天前
知识图谱实战第一章:知识图谱全景解析其定义、技术演进与十大应用场景
人工智能·python·目标检测·自然语言处理·flask·nlp·知识图谱
AI人工智能+2 天前
从像素到数据:浅析计算机视觉与自然语言处理驱动的毕业证书识别
深度学习·计算机视觉·自然语言处理·ocr·毕业证书识别