在开始前,先介绍下虚拟环境。虚拟环境相当于独立分支,该环境下的安装包是独立的,不影响其他环境。由于本安装包的依赖较多,且与当前部分包产生版本冲突。因此采取新增一个虚拟环境进行试用:
- 安装包:
conda install ipykernel
,conda install nb_conda
- 设置虚拟环境:
conda create -n p2t python=3.8
- 重启juuyter
- 在jupyter新建中选择刚才创建的虚拟环境
p2t
安装过程可能会有些问题,如果是初次使用OpenCV,那估计安装都不会很顺利(作者原话)。以下是我安装过程爬过的坑,如果有同样的情况可以参考。其他情况只能自行谷歌/百度了,一般都能解决。
pip install numpy -- 提前安装好numpy pip install requests -- 提前安装好requests pip install pix2text # 最新版要求os 11,否则报ImportError: dlopen... 错误 # 本机为os 10.15 不考虑折腾mac版本,选择安装旧版本,因此先删除依赖自动安装的最新版opencv pip uninstall opencv-python -y pip install opencv-python==4.2.0.34 # 指定4.2旧版本
万事具备,开始根据作者的教程走。安装好 Pix2Text 后,首次使用时系统会自动下载模型文件,并存于 ~/.pix2text
目录
def pic2latex(img): from pix2text import Pix2Text img_fp = img p2t = Pix2Text() out_text = p2t(img_fp) print(out_text['text']) # 首次运行时系统会自动下载模型文件,只需等待即可 pic2latex('1.png')
100%|███████████████████████████████████████████| 1/1 [00:00<00:00, 21.21it/s] f(x)=\frac{1}{\sqrt{2\pi}\sigma}\mathrm{e}^{-\frac{(x-\mu)^{2}}{2\sigma^{2}}}
复制该latex文本写入markdown,可以正常识别:f(x)=12πσe−(x−μ)22σ2
为了检验效果,这里在网上下了几张公式的图片,验证下识别效果
本文图片来源于网上,读者可自行网络搜集或点击保存图片,如果需要也可微信公众号关注HsuHeinrich,回复关键字【公式识别】自动获取
# 循环识别以下图片 from PIL import Image import matplotlib.pyplot as plt import numpy as np for i in range(1,5): img = Image.open(f'{i}.png') m = np.asarray(img) plt.figure(figsize=(18,24)) plt.imshow(m) plt.show() print('识别结果'+'\*'\*30) pic2latex(f'{i}.png')
output_8_0
识别结果****************************** 100%|███████████████████████████████████████████| 1/1 [00:00<00:00, 21.77it/s] f(x)={\frac{1}{\sqrt{2\pi}\sigma}}\mathrm{e}^{-{\frac{(x-\mu)^{2}}{2\sigma^{2}}}}
output_8_4
识别结果****************************** 100%|███████████████████████████████████████████| 1/1 [00:00<00:00, 23.07it/s] \begin{array}{c}{{f_{x}(x)=\int_{-\infty}^{\infty}f(x,y)\,\mathrm{d}y=\int_{0}^{1}{\frac{x+2y}{4}}\,\mathrm{d}y}}\\ {{\ }}\\ {{\ }}\\ {{\ }}\\ {{={\frac{x y+y^{2}}{4}}{\binom{x}{4}}\end{array}^{1}{\binom{x+1}{4}}}}\end{array}
output_8_8
识别结果****************************** 100%|███████████████████████████████████████████| 1/1 [00:00<00:00, 23.38it/s] 十(-1)0- tanh(-6. 8厂 eaD sinh 3.z2)(e一告J1 -1 1+ 2esD cosh(麦6.72
output_8_12
识别结果****************************** 100%|███████████████████████████████████████████| 1/1 [00:00<00:00, 21.11it/s] I(Y|X)=\sum_{x\in{\mathcal{A}},\mathfrak{p}\in{\mathcal{Y}}}p(x,y)\log\left({\frac{p(x)}{p(x,y)}}\right)
发现第二张图片和第三张图片无法识别/识别错误。
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。