Windows和Linux下使用Python搭建一个图片OCR工具
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">识别结果效果</a></li><li><a href="#_label1">一、安装系统级依赖</a></li><ul class="second_class_ul"><li><a href="#_lab2_1_0">Windows 系统</a></li><li><a href="#_lab2_1_1">Linux 系统</a></li></ul><li><a href="#_label2">二、创建并激活虚拟环境</a></li><ul class="second_class_ul"><li><a href="#_lab2_2_2">1. 创建虚拟环境</a></li><li><a href="#_lab2_2_3">2. 激活虚拟环境</a></li></ul><li><a href="#_label3">三、安装 PaddlePaddle(CPU 版本)</a></li><ul class="second_class_ul"></ul><li><a href="#_label4">四、安装 PDF 相关依赖</a></li><ul class="second_class_ul"><li><a href="#_lab2_4_4">1. 安装 PyMuPDF(PDF 解析)</a></li><li><a href="#_lab2_4_5">2. 安装 PaddleX(含 OCR 模块)</a></li><li><a href="#_lab2_4_6">3. 安装 ReportLab(PDF 生成)</a></li></ul></ul></div><p class="maodian"><a name="_label0"></a></p><h2>识别结果效果</h2><p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202601/2026011308422041.png" /></p>
<p>案例参考图片</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202601/2026011308422083.jpg" /></p>
<p class="maodian"><a name="_label1"></a></p><h2>一、安装系统级依赖</h2>
<p class="maodian"><a name="_lab2_1_0"></a></p><h3>Windows 系统</h3>
<p>在 Windows 系统下,从 Python 官方网站 下载 Python 3.10 版本安装包,安装时勾选 “Add Python to PATH” 选项。</p>
<p class="maodian"><a name="_lab2_1_1"></a></p><h3>Linux 系统</h3>
<p>在 Linux 系统下,安装 Python 3.10 及常用开发组件:</p>
<div class="jb51code"><pre class="brush:bash;">sudo apt update
sudo apt install -y \
python3.10 \
python3.10-venv \
python3.10-dev \
python3.10-distutils \
python3-pip
</pre></div>
<p>这些组件分别用于:</p>
<ul><li><code>python3.10</code>:Python 解释器</li><li><code>venv</code>:虚拟环境支持</li><li><code>dev / distutils</code>:编译与打包依赖</li><li><code>pip</code>:Python 包管理工具</li></ul>
<p class="maodian"><a name="_label2"></a></p><h2>二、创建并激活虚拟环境</h2>
<p class="maodian"><a name="_lab2_2_2"></a></p><h3>1. 创建虚拟环境</h3>
<div class="jb51code"><pre class="brush:bash;">python -m venv paddle_py10
</pre></div>
<p class="maodian"><a name="_lab2_2_3"></a></p><h3>2. 激活虚拟环境</h3>
<p>Windows 系统</p>
<div class="jb51code"><pre class="brush:bash;">paddle_py10\\Scripts\\activate
</pre></div>
<p>Linux 系统</p>
<div class="jb51code"><pre class="brush:bash;">source paddle_py10/bin/activate
</pre></div>
<p>激活成功后,终端前会显示:</p>
<blockquote><p>(paddle_py10)</p></blockquote>
<p class="maodian"><a name="_label3"></a></p><h2>三、安装 PaddlePaddle(CPU 版本)</h2>
<p>在虚拟环境中安装 <strong>PaddlePaddle CPU 版</strong>(适用于 Windows 和 Linux):</p>
<div class="jb51code"><pre class="brush:bash;">python -m pip install paddlepaddle -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
</pre></div>
<p>说明:</p>
<ul><li>使用官方国内镜像,下载速度更快</li><li>该版本适合 <strong>无 GPU / CPU 推理环境</strong></li><li>自动检测操作系统并安装相应版本</li></ul>
<p class="maodian"><a name="_label4"></a></p><h2>四、安装 PDF 相关依赖</h2>
<p class="maodian"><a name="_lab2_4_4"></a></p><h3>1. 安装 PyMuPDF(PDF 解析)</h3>
<div class="jb51code"><pre class="brush:bash;">pip install PyMuPDF
</pre></div>
<p>主要用于:</p>
<ul><li>PDF 页面解析</li><li>文本 / 图片提取</li><li>PDF 转图片(OCR 前处理)</li></ul>
<p class="maodian"><a name="_lab2_4_5"></a></p><h3>2. 安装 PaddleX(含 OCR 模块)</h3>
<div class="jb51code"><pre class="brush:bash;">pip install "paddlex"
</pre></div>
<p>功能包括:</p>
<ul><li>OCR 模型封装</li><li>文本检测 / 识别</li><li>表格与版面分析</li></ul>
<p class="maodian"><a name="_lab2_4_6"></a></p><h3>3. 安装 ReportLab(PDF 生成)</h3>
<div class="jb51code"><pre class="brush:bash;">pip install reportlab
</pre></div>
<p><strong>完整代码</strong></p>
<div class="jb51code"><pre class="brush:py;">from paddleocr import PaddleOCRVL
from PIL import Image
import numpy as np
pipeline = PaddleOCRVL(
device="cpu"
)
img = Image.open(
"v2-f644e32ef8fb2b15b6dd7218eff5f844_r.jpg"
).convert("RGB")
# resize
max_side = 1024
w, h = img.size
scale = min(max_side / w, max_side / h, 1.0)
img = img.resize((int(w * scale), int(h * scale)))
# 重要一步:PIL → numpy (防止CPU超过内存)
img_np = np.array(img)
output = pipeline.predict(img_np)
for res in output:
res.print()
res.save_to_json(save_path="output")
res.save_to_markdown(save_path="output")
</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202601/2026011308422092.png" /></p>
<p>输出目录示例(Windows)</p>
<blockquote><p>(paddle_py10) C:\workspace\output> dir<br />1768203146_1313.md<br />1768203146_1313_res.json</p></blockquote>
<p>输出目录示例(Linux)</p>
<blockquote><p>(paddle_py10) user@machine:/home/user/workspace/output$ tree<br />├── 1768203146_1313.md<br />└── 1768203146_1313_res.json<br /><br />0 directories, 4 files</p></blockquote>
<p>转PDF和word请参考相关文章参考:</p>
<ul><li><a href="https://www.jb51.net/python/3566700u1.htm" target="_blank">Python实现将Markdown一键打印为A4专业文档</a></li><li><a href="https://www.jb51.net/python/3556991br.htm" target="_blank">Python将Markdown文件转换为Word(docx)完整教学</a></li></ul>
頁:
[1]