离线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 buttonself.MathMLButton = QPushButton('LaTex2MathML|复制为MathML', self)self.MathMLButton.setEnabled(False)# self.MathMLButton.clicked.connect(self.returnSnip)self.MathMLButton.clicked.connect(self.mathml)# Create LaTex buttonself.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 = imgself.returnSnip(self.img)@pyqtSlot()def mathml(self):math = latex2mathml.converter.convert(self.text)pp.copy(math)@pyqtSlot()def latex(self):result = self.textpp.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.mzph.cn/news/752320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从底层结构开始学习FPGA(0)----FPGA的硬件架构层次(BEL Site Tile FSR SLR Device)

系列目录与传送门 《从底层结构开始学习FPGA》目录与传送门 Xilinx的FPGA,从硬件架构的角度可以划分为6个层次,从底层到顶层依次是: BEL(最底层单元)SiteTileFSRSLRDevice(FPGA芯片) 接下来我…

UG NX二次开发(C#)-单选对话框UF_UI_select_with_single_dialog的使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2、UF_UI_select_with_single_dialog函数3、实现代码3.1 利用委托创建一个方法3.2 直接调用1、前言 对于单选对话框,采用C++/C写的时候比较容易,也在帮助文档中有示例,但是对于C#开发采…

WEB三大组件之Filter

在很多项目中通常需要用到filter来实现用户身份识别,并将识别出来的用户信息,保存到ThreadLocal对应的上下文,这样在后续的请求链路中,在任何地方都可以直接获取当前的登录用户了。 来看一下Java WEB三大组件之一的过滤器Filter&…

L2-042 老板的作息表(PTA)

文章目录 L2-042 老板的作息表题目描述sort排序函数 L2-042 老板的作息表 题目描述 新浪微博上有人发了某老板的作息时间表,表示其每天 4:30 就起床了。但立刻有眼尖的网友问:这时间表不完整啊,早上九点到下午一点干啥了? 本题就…

UnityShader:IBL

效果: 实现: Shader "MyShader/IBL" {Properties{_CubeMap ("环境贴图", Cube) "white" {}_Exposure("曝光",float)1.0_Color("颜色",color)(1,1,1,1)_NormalMap("法线贴图",2d)"bu…

Python——pgzero游戏打包exe执行时报错

Python——pgzero游戏打包exe执行时报错 记录一次使用 pgzero 开发游戏,使用 pyinstaller 打包时报错 目录结构: 1. 第一次报错 打包指令: pyinstaller -Fw .\code.py结果打开报错 报错如下: Traceback (most recent call…

【Web】记录[长城杯 2022 高校组]b4bycoffee题目复现

目录 前言 环境准备 简单分析 EXP(两种打法) 生成Payload 恶意类 ①Spring命令执行回显类 ②Filter型内存马 前言 本地jar包运行打通了,远程500,nss靶机有问题,换了bugku就可( 主要记录下做题过程,纯菜狗,小…

Linux——开发工具yum与vim

Linux——开发工具yum与vim 文章目录 Linux——开发工具yum与vim一、Linux 软件包管理器-yum1.1 什么是软件包1.2 yum的使用 二、linux下的编辑器-vim2.1 vim的基本概念2.2 vim的基本操作插入模式下的基本命令底行模式下的基本指令 2.3 vim的配置 一、Linux 软件包管理器-yum …

8-图像缩放

其实,就是开辟一个zoomwidth,zoomheight的内存,再分别赋值即可。 void CDib::Scale(float xZoom, float yZoom) { //指向原图像指针 LPBYTE p_data GetData(); //指向原像素的指针 LPBYTE lpSrc; //指向缩放图像对应像素的指针 LPBYTE lpDs…

数据结构——lesson8二叉树的实现

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

论文阅读——BLIP

BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation (1)单模态编码器,它分别对图像和文本进行编码。图像编码器用ViT,并使用附加的 [CLS] 标记来表示全局图像特征。文本…

springcloud:4.1 GateWay

概述 Gateway 简介 Spring Cloud Gateway基于Spring 5.0、SpringBoot 2.0和Project Reactor等技术开发 旨在为微服务架构提供一种简单有效的、统一的API路由管理方式,并为微服务架构提供安全、监控、指标和弹性等功能 其目标是替代Zuul特点 易于编写谓词和过滤器&…

解决谷歌浏览器最新chrome94版本CORS跨域问题

项目场景: 谷歌浏览器升级到chrome94版本出现CORS跨域问题 问题描述 解决谷歌浏览器最新chrome94版本CORS跨域问题。 CORS跨域问题: 升级谷歌浏览器最新chrome94版本后,提示Access to XMLHttpRequest at ‘http://localhost:xxxx/api’ fro…

zabbix企业微信接入结合海螺问问编写的shell脚本

前言 博客懒得写详细了,视频剪的累死了,看视频就好了 白帽小丑的个人空间-白帽小丑个人主页-哔哩哔哩视频 shell脚本 #!/bin/bash #set -x CorpID"" #我的企业下面的CorpID Secret"" #创建的应用那…

C到C++的敲门砖-1

文章目录 关键字命名空间输入和输出缺省参数函数重载 关键字 相较于C语言32个关键字: autodoubleintstructbreakelselongswitchcaseenumregistertypedefcharexternreturnunionconstfloatshortunsignedcontinueforsignedvoiddefaultgotosizeofvolatiledoifwhilesta…

用python写网络爬虫:2.urllib库的基本用法

文章目录 urllib库抓取网页data参数timeout参数更灵活地配置参数登录代理Cookies 参考书籍 建议新入门的小伙伴先看我同一专栏的文章:用python写网络爬虫:1.基础知识 urllib库 urllib是python中一个最基础的HTTP库,一般是内置的,…

2024年 前端JavaScript Web APIs 第三天 笔记

3.1-表单全选反选案例 <!DOCTYPE html><html><head lang"en"><meta charset"UTF-8"><title></title><style>* {margin: 0;padding: 0;}table {border-collapse: collapse;border-spacing: 0;border: 1px solid …

网络安全实训Day5

写在前面 昨天忘更新了......讲的内容不多&#xff0c;就一个NAT。 之前记的NAT的内容&#xff1a;blog.csdn.net/Yisitelz/article/details/131840119 网络安全实训-网络工程 NAT 公网地址与私网地址 公网地址 可以在互联网上被寻址&#xff0c;由运营商统一分配全球唯一的I…

在 Windows 上利用Qwen大模型搭建一个 ChatGPT 式的问答小助手

本文首发于公众号&#xff1a;Hunter后端 原文链接&#xff1a;在 Windows 上利用Qwen大模型搭建一个 ChatGPT 式的问答小助手 最近 ChatGPT 式的聊天机器人比较火&#xff0c;可以提供各种问答功能&#xff0c;阿里最近推出了 Qwen1.5 系列的大模型&#xff0c;提供了各个参数…

在线BLOG网|基于springboot框架+ Mysql+Java+JSP技术的在线BLOG网设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen参考 摘要 研究…