图像截屏公式识别——LaTeX-OCR安装与使用
一、简介
LaTeX-OCR 是一个开源的光学字符识别(OCR)软件,专为 LaTeX 文档提供支持。其主要目的是帮助用户将扫描的文档转换为 LaTeX 编辑器可以使用的可编辑文本,从而方便进行修改、编辑和排版。LaTeX广泛用于科技、数学、工程等领域的文档编写。而 OCR 技术则用于将图像中的文字转换为计算机可编辑的文本。LaTeX-OCR 的结合使得用户能够更方便地将扫描得到的文档内容转换为 LaTeX 格式,为文档的后续编辑和排版提供了便利。
-
高精度 OCR: LaTeX-OCR采用先进的OCR技术,能够高度准确地识别扫描文档中的字符,并以文本形式输出。这确保了转换后的文本质量,为后续编辑提供了可靠的基础。
-
支持 LaTeX 格式: 该软件专门为LaTeX文档设计,能够保留源文档中的LaTeX语法和格式。这意味着输出的文本与原始LaTeX文档一致,用户无需额外的格式调整。
-
多语言支持: LaTeX-OCR支持多种语言,包括英语、西班牙语、德语、法语等主流语言。这使得它适用于全球范围内的不同语言环境,提高了灵活性和实用性。
-
易于使用: 软件提供直观的用户界面,使用户能够轻松导入扫描文档、选择适当的设置,并以最少的步骤完成OCR过程。用户友好的设计有助于提高效率,降低使用门槛,使更多人能够受益于该工具。
二、环境安装
LaTeX-OCR可以从源码进行安装,也可以直接用pip来安装,源码地址:https://github.com/lukas-blecher/LaTeX-OCR,我这里直接使用pip进行安装,为了方便管理环境,这里使用conda创建虚拟环境。
1.环境安装
conda create -n latex python=3.10
activate latex
pip install "pix2tex[gui]"
2.启动与使用
latexocr
第一次启动的时候,它会去下载两个模型,可能会很慢,等等就可以,如果下载不下来,可以直接去官网下载后,放到指定的目录。
启动完成之后,出现UI交互界面,使用快捷键或者直接点击截屏识别:
3.识别
识别一个复杂一点的公式,如果识别得不精准,可以自己手动调节Temperature值:
下面是生成的LaTeX 表示方法,把它复制到支持LaTeX 表示方法的编辑器就可以不用那么麻烦自己去输入各种符号了
L I = − 1 N ∑ i = 1 N ∣ O g exp ( s i m ( z i I , z i T ) / τ ) ∑ j = 1 N exp ( s i m ( z i I , z j T ) / τ ) L_{I}=-\frac{1}{N}\sum_{i=1}^{N}|_{\mathrm{Og}}\frac{\exp(\mathrm{sim}(z_{i}^{I},z_{i}^{T})/\tau)}{\sum_{j=1}^{N}\exp(\mathrm{sim}(z_{i}^{I},z_{j}^{T})/\tau)} LI=−N1∑i=1N∣Og∑j=1Nexp(sim(ziI,zjT)/τ)exp(sim(ziI,ziT)/τ)
4.代码调用
from PIL import Image
from pix2tex.cli import LatexOCRimg = Image.open('path/to/image.png')
model = LatexOCR()
print(model(img))
作者指出,该模型在较小分辨率的图像上表现最佳。为了提高其效果,添加了一个预处理步骤。在这一步中,另一个神经网络会预测输入图像的最佳分辨率。随后,定制图像会被自动调整大小,以更好地匹配训练数据的特征。这个方法旨在提升模型在真实场景中遇到的图像的性能。然而,需要注意的是,该模型可能不能在处理极大图像时达到最佳效果。因此,在拍摄图片之前,不建议进行过度放大。
5.处理步骤
相关文章:

图像截屏公式识别——LaTeX-OCR安装与使用
一、简介 LaTeX-OCR 是一个开源的光学字符识别(OCR)软件,专为 LaTeX 文档提供支持。其主要目的是帮助用户将扫描的文档转换为 LaTeX 编辑器可以使用的可编辑文本,从而方便进行修改、编辑和排版。LaTeX广泛用于科技、数学、工程等…...

LabVIEW与Tektronix示波器实现电源测试自动化
LabVIEW与Tektronix示波器实现电源测试自动化 在现代电子测试与测量领域,自动化测试系统的构建是提高效率和精确度的关键。本案例介绍了如何利用LabVIEW软件结合Tektronix MDO MSO DPO2000/3000/4000系列示波器,开发一个自动化测试项目。该项目旨在自动…...

青少年CTF-Crypto(Morse code/ASCII和凯撒)
FLAG:你这一生到底想干嘛 专研方向: Web安全 ,Md5碰撞 每日emo:不要因为别人都交卷了,就乱选答案 文章目录 1.Morse code2、ASCII和凯撒的约定 1.Morse code 题目提示摩尔斯电码,这个是给的附件 直接用摩尔斯解密&am…...

Vue3-16-【v-model】 表单数据绑定
作用描述 v-model 指令,实现了 表单输入组件的值 与 js 中的变量的值的绑定关系。 当我们在页面上执行输入动作时,js中变量的值也会同步发生变化。表单不仅仅局限于输入框,其他的如 : 单选按钮,复选框,下拉…...
【Flink on k8s】- 12 - Flink kubernetes operator 的高级特性
目录 1、自动伸缩 1.1 工作原理 1.2 Job 要求和限制 1.2.1 要求 1.2.2 限制...

量子芯片技术:未来的计算革命
量子芯片技术:未来的计算革命 一、引言 随着科技的不断发展,人类正在进入一个全新的技术时代,即量子时代。量子芯片技术作为这个时代的重要代表,正逐渐改变我们对计算和信息处理的理解。本文将深入探讨量子芯片技术的基本原理、…...

vaptcha-手势验证码
很外向,上班总想坐老板的位置。 网址:https://www.vaptcha.com/#demo 第一次接触是在大学刚毕业的时候,搞了一半就没搞了。时隔1年多,回来看看。 难点,图片还原,轨迹,canvas校验等。 轨迹的…...

【一种用opencv实现高斯曲线拟合的方法】
背景: 项目中需要实现数据的高斯拟合,进而提取数据中标准差,手头只有opencv库,经过资料查找验证,总结该方法。 基础知识: 1、opencv中solve可以实现对矩阵参数的求解; 2、线的拟合就是对多项…...
find_package 和 find_library的区别
背景 经常看CMakeLists.txt中有find_package和find_library,有时候没留意以为都一样,其实二者差距比较大,下面简单记录一下。 find_package find_package(NAME), 这段代码的本质就是在找一个NAME.cmake这个文件,一般在安装库的…...
socket是如何进行通信的
Socket通信的原理大致分为以下几个步骤: 服务器端建立Socket,开始侦听整个网络中的连接请求。当检测到来自客户端的连接请求时,向客户端发送收到连接请求的信息,并建立与客户端之间的连接。当完成通信后,服务器关闭与…...

STM32-固件打包部署
STM32-固件打包部署 Fang XS.1452512966qq.com STM32固件输出 工程上使用Keil开发STM32软件;在调试过程中,可直接编译下载;例如bootloader和APP,在调试时,可以直接下载2次;但是工程上,需要大…...

微信机器人如何使用?好用吗?好奇
随着微信的使用范围越来越大,所以人一多,管理起来就会遇到很多繁琐的情况需要仍去操作。 比如需要手动一个个通过好友验证,发消息,相同问题一遍遍的回答,消息还容易看漏,回复不过来...... 想着如果有什么可…...
ARMV8 - A64 - 函数调用,内存栈操作
说明 看了下ARM平台上C语言函数调用的反汇编代码,理清楚了其中的内存栈汇编操作,特整理下。本文环境基于:ARMv8-a架构A53核soc,aarch64状态。 预先了解的知识点 内存栈 栈和栈帧的基本概念重点:出栈入栈的单位不是…...

MyBatis 四大核心组件之 ResultSetHandler 源码解析
🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…...

docker-compose 单机容器编排
docker-compose 单机容器编排 Dockerfile:先配置好的文件,然后bulid,镜像容器。 docker-compose 既可以基于dockerfile,也可以基于镜像,一键式拉起镜像和容器。 docker-compose 核心就是yml文件,可以定义…...
springboot项目使用Layui作为前端UI的一系列前后端交互的解决方法
背景: 因为比较喜欢Layui,因为多个项目都是从零开始就使用的layui开发的,并且开发过程中借鉴了很多其他项目(如Ruoyi、Pear Admin),因此最终选用大部分Pear Admin的项目中使用的一系列解决方案,…...
【Linux】Firewalld防火墙新增端口、开启、查看等
Linux操作系统中,Firewalld防火墙相关操作如下: 安装 yum install firewalld firewalld-configFirewall开启常见端口命令 新增端口: firewall-cmd --zonepublic --add-port80/tcp --permanentfirewall-cmd --zonepublic --add-port443/tc…...

学习笔记 -- TVS管选型参考
一、TVS管基本工作原理 当TVS管(瞬态电压抑制器)两极受到反向瞬态高能量冲击时,能以纳秒(ns)量级的速度,将两极间的高阻抗变为低阻抗,使两极间的电压箝位于一个预定的值,有效地保护电子线路中的元器件。 在浪涌电压作用下…...

功能更新|免费敏捷工具Leangoo领歌私有部署新增第三方身份认证和API对接
Leangoo领歌是一款永久免费的专业的敏捷开发管理工具,提供端到端敏捷研发管理解决方案,涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 Leangoo支持敏捷研发管理全流程,包括小型团队敏捷开发,规模化敏捷SAFe,Scr…...

重生奇迹mu战士加点
在重生奇迹MU中,战士作为一个近战职业,主要依赖于物理攻击来输出伤害。因此,在加点方面,战士需要优先考虑加强自身的攻击力,同时也要增强自身的生存能力和耐久度。 以下是可参考的战士加点方案: 1.力量&a…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...

Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...