File size: 1,587 Bytes
12ebd50
 
 
 
 
 
 
 
 
 
 
 
 
b75e591
 
12ebd50
e23c81b
12ebd50
 
e23c81b
12ebd50
 
 
 
 
 
 
 
 
b75e591
12ebd50
b75e591
12ebd50
 
 
 
 
 
 
b75e591
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import os
from PIL import Image
import streamlit
os.system('pip install pix2tex')
from pix2tex.cli import LatexOCR
from munch import Munch

args = Munch({'config': 'settings/config.yaml',
              'checkpoint': os.path.realpath(os.path.join(os.path.dirname(__file__), 'checkpoints/weights.pth')),
              'no_resize': False})
model = LatexOCR(args)

if __name__ == '__main__':
    streamlit.set_page_config(page_title='LaTeX-OCR_CN')
    streamlit.title('LaTeX OCR_CN')
    streamlit.markdown(
        '将方程式或者数学公式的图像转换为相应的 LaTeX 代码.\n\n这是基于pix2tex项目.查看[![github](https://img.shields.io/badge/LaTeX--OCR-visit-a?style=social&logo=github)](https://github.com/lukas-blecher/LaTeX-OCR)')

    uploaded_file = streamlit.file_uploader(
        '上传公式图片,点击BrowserFiles或者拖拽到此上传,支持200MB以内的JPG或者PNG图片',
        type=['png', 'jpg'],
    )

    if uploaded_file is not None:
        image = Image.open(uploaded_file)
        streamlit.image(image)
    else:
        streamlit.text('\n')

    if streamlit.button('转换'):
        if uploaded_file is not None and image is not None:
            with streamlit.spinner('计算中'):
                try:
                    latex_code = model(image)
                    streamlit.code(latex_code, language='latex')
                    streamlit.markdown(f'$\\displaystyle {latex_code}$')
                except Exception as e:
                    streamlit.error(e)
        else:
            streamlit.error('请上传图片.')