调用mathpix api识别图片中的公式
借助mathpix软件可以很方便的识别图片中的公式,复制到word中,可编辑的模式。但是免费版的mathpix只提供每月50次的使用,很难满足要求,但可喜的是他们提供了每月1000次的免费调用接口。
https://accounts.mathpix.com/ocr-api/keys
登录该网址即可申请app_id和app_key
本文参考这篇博客编写了调用的python脚本https://sspai.com/post/57181
这个脚本使用起来很简单,通过任意一款截图软件把要是别的图片复制到粘贴板,脚本的功能是把粘贴板的图片保持到d盘,并送到mathpix的识别接口,返回json格式的对象,对其解析得到识别的latex格式的公式,识别结果会显示在console窗口,也会保存在equation.txt文件中,把识别结果复制到word可以显示正常的可编辑的公式,
# example from https://github.com/Mathpix/api-examples/blob/master/python/mathpix.py
import os,base64,requests,json
from PIL import ImageGrab
env = os.environ
#HOME = env.get('HOME') + "/Desktop/"
HOME = "D:\\"
default_headers = {
'app_id': env.get('APP_ID', '***********'),
'app_key': env.get('APP_KEY', '********************'),
'Content-type': 'application/json'
}
service = 'https://api.mathpix.com/v3/latex'
# Return the base64 encoding of an image with the given filename.
def image_uri(filename):
image_data = open(filename, "rb").read()
return "data:image/jpg;base64," + base64.b64encode(image_data).decode()
# Call the Mathpix service with the given arguments, headers, and timeout.
def latex(args, headers=default_headers, timeout=300):
r = requests.post(service, data=json.dumps(args), headers=headers, timeout=timeout)
return json.loads(r.text)
def mathpix():
# 从剪贴板获取公式
im = ImageGrab.grabclipboard()
im.save(HOME+'screen.png','PNG')
r = latex({
'src': image_uri(HOME+"screen.png"),
"ocr": ["math", "text"],
'formats': ['latex_styled']
})
print(r['latex_styled'])
f=open("equation.txt",'a')
f.write(r['latex_styled']+'\n')
f.close()
if __name__ == '__main__':
# 调用 macOS 的 screencapture 命令行工具
#os.system("screencapture -i -c")
mathpix()
比如
的识别结果是
y = | a + b | / c
在word中插入latex格式的公式,可以转化为正常的显示方式
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!