当前位置: 首页 > article >正文

离线LaTex公式识别V1.0开发

离线LaTex公式识别V1.0开发

前期的工作

请看博文-离线LaTex公式识别V0.9开发

已完成的内容

  • LaTex公式识别的GUI。
  • 支持将LaTex复制为MathML。
  • 支持读取剪切板的图片。

部分UI换成iconfont下载的一些元素。

读懂pyqt的一些代码。基本实现了万能君的软件库的所有功能。

开发过程暂时告一段落。

主要添加的代码

初始化方面

        # 初始化剪切板监听  
        self.clipboard = QApplication.clipboard()
        # 初始化剪切板监听(默认不开启)  
        self.clipboard.dataChanged.connect(self.on_clipboard_data_changed)  
       
        self.tempField.setRange(0, 1)
        self.tempField.setSingleStep(0.1)
        self.checkbox = QCheckBox("Enable listening to clipboard | 使能读取剪切板", self)
        self.checkbox.setChecked(True)  # 设置初始状态为选中  
        self.checkbox.stateChanged.connect(self.on_checkbox_change)
        # Create retry button
        self.MathMLButton = QPushButton('LaTex2MathML|复制为MathML', self)
        self.MathMLButton.setEnabled(False)
        # self.MathMLButton.clicked.connect(self.returnSnip)
        self.MathMLButton.clicked.connect(self.mathml)


        # Create LaTex button
        self.LaTexButton = QPushButton('LaTex_Copy|复制为LaTex', self)
        self.LaTexButton.setEnabled(False)
        self.LaTexButton.clicked.connect(self.latex)

函数方面:



    def on_checkbox_change(self, state):

        if self.checkbox.isChecked():
            self.clipboard.dataChanged.connect(self.on_clipboard_data_changed)
        else:
            self.clipboard.dataChanged.disconnect(self.on_clipboard_data_changed)   

    def on_clipboard_data_changed(self):  
 
        # 检查剪切板中是否有图像数据  
        clipboard = QApplication.clipboard()  
        mime_data = clipboard.mimeData()  
        if mime_data.hasImage():  
            # 从剪切板获取图像数据  
            qimage = mime_data.imageData()  
            img = Image.fromqimage(qimage)
            # img = ImageQt.fromqimage(qimage)
            self.img = img
            self.returnSnip(self.img)
    @pyqtSlot()
    def mathml(self):
        math = latex2mathml.converter.convert(self.text)
        pp.copy(math)
    @pyqtSlot()
    def latex(self):
        result = self.text
        pp.copy(result)

GitHub工程见Pix2Text-GUI

删除内容

公式识别软件,不是刚需,之前的版本占用了8G的内存,其中torch占用3个G(GPU版本),模型2个多G、属实是本末倒置。因此本版本删除了Nougat、Texify,以节约工具占用的存储空间。

尽管Pix2Text在印刷体的识别精度某些程度上是不如Nougat、Texify的,但是它支持手写体公式的识别,此外模型也是比较小的,不到200MB。

经过瘦身后的工具占用空间1.2G。

在这里插入图片描述

尽量的在瘦身。

使用案例

印刷体

在这里插入图片描述

手写公式

在这里插入图片描述

下载地址

链接:https://pan.quark.cn/s/4f49a9abaa85
提取码:UvM1


http://www.kler.cn/a/272336.html

相关文章:

  • uniapp——App 监听下载文件状态,打开文件(三)
  • OpenCV简介、OpenCV安装
  • MySQL 篇 - Java 连接 MySQL 数据库并实现数据交互
  • 【AI论文】生成式视频模型是否通过观看视频学习物理原理?
  • 1.写在前面
  • MySQL 与 Redis 数据一致性 2
  • C#,人工智能,机器学习,聚类算法,训练数据集生成算法、软件与源代码
  • 微软 CEO Satya Nadella 的访谈
  • Gitlab光速发起Merge Request
  • 每日学习笔记:C++ STL 的forward_list
  • 【C语言】内存函数~
  • vb.net+zxing.net随机彩色二维码、条形码
  • 【学习笔记】云原生的关键技术初步
  • Puppet 代码入门:清单和模块
  • 2024 年(第 12 届)“泰迪杯”数据挖掘挑战赛——B 题:基于多模态特征融合的图像文本检索完整思路与源代码分享
  • 【Java初阶(一)】初识Java
  • 测试人员Bug书写规范
  • 【递归搜索回溯专栏】专题二:二叉树中的深搜----二叉树剪枝
  • 24计算机考研调剂 | 武汉科技大学
  • 安全架构设计
  • 静默安装OGG21.3微服务版本FOR ORACLE版本
  • [java基础揉碎]断点调试
  • 多核(CPU)系统中并行计算Atomic原子操作与缓存一致性(memory/cache coherency)
  • C++/CLI学习笔记5(快速打通c++与c#相互调用的桥梁)
  • Linux基础开发工具之yum与vim
  • golang常用库之-golang常用库之-ladon包 | 基于策略的访问控制