文章目录
前言
网上有许多识别图片转LaTEX公式的工具,很好用,训练的识别精度也很高,不过收费不能掉线,而LaTEX OCR开源免费,不想使用命令操作的它也有界面,没有网络环境也能用。
一、安装内容
1. Python
使用LaTEX OCR前得有Python,官网下载安装,记得配置环境变量;
2. virtualenvwrapper
一个用于创建和管理Python虚拟环境的工具包,它是virtualenv的封装与扩展。virtualenvwrapper可以更好地隔离项目的依赖,避免不同项目之间的依赖冲突,这里是避免LaTEX OCR和我的项目冲突。只用Python使用OCR的可以不必理会。
3. LaTEX OCR
LaTeX OCR是一个将手写或印刷的数学公式转换为LaTeX代码的工具,它简化了数学文档的数字化过程。实现方式包括使用图形用户界面(GUI)和命令行工具。
二、安装和使用的命令行
1. 安装使用virtualenvwrapper
我的是win10系统,用的Python3.12,所以就不说Python2的事了。
pip最好更新到最新版本
pip install --upgrade pip
# 避免等会下载virtualenvwrapper出error
安装virtualenvwrapper之前先安装virtualenv
pip install virtualenv
# 这可能出现网络环境不稳定而下载失败的问题,这里使用国内的PyPI镜像来下载
pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple
安装virtualenvwrapper
pip install virtualenvwrapper-win
配置virtualenvwrapper环境变量
# 目的:默认创建的虚拟环境位于C:\Users\username\envs,新建一个环境变量来更改;
# 在环境变量面板新建一个环境变量,变量名为WORKON_HOME,变量值:路径自定义;
WORKON_HOME
E:\workspace\py_workon_home\
virtualenvwrapper使用命令
# 1. 创建一个虚拟环境,创建成功后就会进入虚拟环境
mkvirtualenv noobvir
# 2. 查看所有创建的虚拟环境
workon
# 3. 激活某虚拟环境
workon noobvir
# 4. 退出当前虚拟环境
deactivate
# 5. 删除某虚拟环境
rmvirtualenv noobvir
到此为止,虚拟环境就好了。
2. 安装使用LaTEX OCR
在虚拟环境下安装OCR
# 1. 创建一个虚拟环境,比如LaTEX
mkvirtualenv LaTEX
# 2. 激活虚拟环境LaTEX
workon LaTEX
# 3. 还是先更新pip
pip install --upgrade pip
# 4. 这里不去GitHub下载OCR,直接在虚拟环境使用命令行下载安装
pip install "pix2tex[gui]" -i https://pypi.tuna.tsinghua.edu.cn/simple
# 记得加双引号,不然会有一堆脑袋要炸的适配问题,error提示安装一堆库,最后没啥用
启用OCR命令
# 建议先到GitHub下载权重文件,不然这里运行时下载会花很长很长的时间
# 下载地址:
# [权重文件](https://github.com/lukas-blecher/LaTeX-OCR/releases/tag/v0.0.1)
# 然后把两个.pth文件放到..\Lib\site-packages\pix2tex\model\checkpoints目录下
pix2tex_gui
# 或者
latexocr
# 没问题的话会打开一个界面,不出意外就会出现意外。
# OSError: [WinError 126] 找不到指定的模块。 Error loading "..\Lib\site-packages\torch\lib\fbgemm.dll" or one of its dependencies.
# 解决办法:[下载相关dll](https://blog.csdn.net/xiaobaishiwohaoma/article/details/141138855)
使用OCR界面
# 1. 通过截图或上传图片的方式将数学公式图像输入
# 2. LaTeX OCR会将图像中的公式识别出来,并转换为LaTeX代码
# 3. 将转换后的LaTeX代码渲染并复制到剪贴板,供用户粘贴到LaTeX编辑器中使用
在Python项目中使用
from PIL import Image
from pix2tex.cli import LatexOCR
img = Image.open(path)
model = LatexOCR()
print(model(img))