matlab仿真推荐书目(一起来摸鱼拿Matlab剁手的那种)
matlab仿真推荐书目(一起来摸鱼拿Matlab剁手的那种)关于更多Mathpix的信息可以阅读以下相关的推文拿到手的MathpixOCR API Keys是这样的:原来可以花1$就可以申请到MathpixOCR API,还免费赠送1000/500调用次数,现在需要20倍的价格,不得不说Mathpix这一波韭菜割得让人心痒痒。一次性设置费用 调用API次数费用现在已经没有每月免费调用1000/500次的优惠了,已经根据上个月调用次数,例如在1到10万次,API每次被调用的费用是0.004$,下个月1号进行结算费用这种模式,不清楚后续API一次性设置费用会不会涨价,不过为Mathpix这样一款优秀的工具付费也是值得的,大家觉得呢?
一起来摸鱼,拿Matlab剁手的那种- 1. 前言
- 2. ReadWords工具
- 3. 关于公式识别工具的实现
- 4. 工具获取
- 5. 结语
西安疫情以来总共做了20次核酸,今天是居家的第26天,这让人不得不想起两年前摸鱼时为武汉、祖国加油的场景:MATLAB 爬取天气预报数据。希望下周可以解封吧。
被困在家里,不知不觉又开启了摸鱼模式......
事情的经过是这样的,大概一个半月前碰到免费办信用卡还送礼物的那种活动,为了那份吸引人的礼物,很自然地办了卡。当时我就立马想起,很快啊,终于可以做两年前办不到的事情:申请MathpixOCR的API;另外,可以与先前的文字识别工具(手把手教你,一个案例学会用Matlab App Designer设计文字识别工具(附源码))相结合,开始造新的轮子了!
想法归想法,现实中说翻车就翻车,一顿骚操作之后......
原来可以花1$就可以申请到MathpixOCR API,还免费赠送1000/500调用次数,现在需要20倍的价格,不得不说Mathpix这一波韭菜割得让人心痒痒。
一次性设置费用 调用API次数费用 |
现在已经没有每月免费调用1000/500次的优惠了,已经根据上个月调用次数,例如在1到10万次,API每次被调用的费用是0.004$,下个月1号进行结算费用这种模式,不清楚后续API一次性设置费用会不会涨价,不过为Mathpix这样一款优秀的工具付费也是值得的,大家觉得呢?
拿到手的MathpixOCR API Keys是这样的:
关于更多Mathpix的信息可以阅读以下相关的推文
- 神器mathpix收费了?教你轻松调用API获得每个月500次免费识别!https://zhuanlan.zhihu.com/p/380433944
- 调用Mathpix API 自制Mathpix snipping (每月1000次免费!!!)https://blog.csdn.net/weixin_44984664/article/details/105242426
这次工具改版,主要是在上一次文字识别工具基础上增加公式识别的功能,实现方法上利用标准的MVC设计模式,将界面与逻辑分离,而不像手把手教你,一个案例学会用Matlab App Designer设计文字识别工具(附源码)中介绍的把所有实现封装成一个类,主要界面如下所示
文字识别 公式识别 |
其次,增加了一些快捷键功能:
其中公式识别演示如下:
更多工具使用介绍请移步以下视频号
3. 关于公式识别工具的实现接下来我想简单聊一聊公式识别功能的实现,这个主要是通过调用MathpixOCR API实现,需要两个主要的参数:App ID和App Key,待识别的图像通过base64编码,作为API的请求参数。
通过参考【调用Mathpix API 自制Mathpix snipping (每月1000次免费!!!)https://blog.csdn.net/weixin_44984664/article/details/105242426】给出的Python代码
import os
import base64
import Requests
import json
env = os.environ
default_headers = {
'app_id': env.get('APP_ID' 您的App ID)
'app_key': env.get('APP_KEY' 您的App Key)
'Content-type': 'application/json'
}
service = 'https://api.mathpix.com/v3/latex'
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=30):
print(json.dumps(args))
r = requests.post(service
data=json.dumps(args)
headers=headers
timeout=timeout)
return json.loads(r.text)
def convert():
r = latex({'src': image_uri(r"49.png") 'formats': ['latex_simplified'] 'ocr': ['math' 'text']})
print(r['latex_simplified'])
latex1 = r['latex_simplified']
return latex1
if __name__ == '__main__':
convert()
可以很容易的用MATLAB实现,请求头中用weboptions的HeaderFields属性来设置,对于其他请求参数,如src formats,可以放到一个结构体中,作为参数,和weboptions一起传入webwrite函数,最后获取MathpixOCR API响应的内容。
options = weboptions('RequestMethod' 'post');
options.HeaderFields = {'Content-Type' 'application/json'; ...
'app_id' appID; ...
'app_key' appKey};
以官网上提供的一个例子为例,
当formats用latex_simplified参数时,可以得到如下的响应结果
4. 工具获取工具可以免费获取并使用,只需在本公众号后台回复关键词:ReadWords_V1.0.1
需要注意的是:
- 文字识别和公式识别是可以独立使用的,不想申请MathpixOCR API的朋友们,可以只使用百度 API,每个月有上千次的免费调用,这样的羊毛我们必须得薅......
- 工具不会将你的API keys发送给除MathpixOCR API服务器之外的任何人(目前实现的原理是:当首次填写API keys时,工具会将API keys 离线保存到当前目录,文件名为appidkey.mat,百度 API对应的是apikey.mat,只不过工具对上述文件进行了系统隐藏,显式查看需要用到命令: !attrib -s -h 文件名。)
- 提供了三种安装方式:(分别对应文件夹mlappinstall freeinstall 和 webinstall) Matlab小程序安装,mlappinstall文件工具免安装exe,条件是目标计算机上安装了R2021b版本的Matlab Runtime工具安装exe,需要联网自动下载Matlab Runtime,自动安装工具。
一直以来,我比较喜欢利用MVC的设计模式构建GUI/APP工具,虽然初次构建要比用guide/appdesigner设计器构建速度慢,也不是那么直观,但随着界面、逻辑越复杂化,越能体现出这种模式的优点。当然我们自己设计工具,哪种方法便利、顺手就用哪种。
这次通过将先前的文字识别工具:手把手教你,一个案例学会用Matlab App Designer设计文字识别工具(附源码) 重新用MVC模式重构,让我对这一模式有了新的认识和理解,也算是这两天摸鱼的收获吧。
工具中新增加的快捷键功能具有一定的局限性,即只能将焦点作用在uifigure上时才会生效,不能监听全局的键盘按键,这也是ReadWords工具后续版本优化的主要方向,也是难点,因为当前MATLAB的GUI/APP还没有实现这样的功能,或许需要借助其他语言帮助实现。
今天的分享就到这里了,喜欢这款工具的朋友们不妨下载下来试着玩一玩,有需要改进的地方请留言,祝大家周末愉快,希望国内疫情快快结束,祖国加油!