快捷搜索:  汽车  科技

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. 结语
1. 前言

西安疫情以来总共做了20次核酸,今天是居家的第26天,这让人不得不想起两年前摸鱼时为武汉、祖国加油的场景:MATLAB 爬取天气预报数据。希望下周可以解封吧。

被困在家里,不知不觉又开启了摸鱼模式......

matlab仿真推荐书目(一起来摸鱼拿Matlab剁手的那种)(1)

事情的经过是这样的,大概一个半月前碰到免费办信用卡还送礼物的那种活动,为了那份吸引人的礼物,很自然地办了卡。当时我就立马想起,很快啊,终于可以做两年前办不到的事情:申请MathpixOCR的API;另外,可以与先前的文字识别工具(手把手教你,一个案例学会用Matlab App Designer设计文字识别工具(附源码))相结合,开始造新的轮子了!

想法归想法,现实中说翻车就翻车,一顿骚操作之后......

matlab仿真推荐书目(一起来摸鱼拿Matlab剁手的那种)(2)

原来可以花1$就可以申请到MathpixOCR API,还免费赠送1000/500调用次数,现在需要20倍的价格,不得不说Mathpix这一波韭菜割得让人心痒痒。

matlab仿真推荐书目(一起来摸鱼拿Matlab剁手的那种)(3)

matlab仿真推荐书目(一起来摸鱼拿Matlab剁手的那种)(4)

一次性设置费用 调用API次数费用

现在已经没有每月免费调用1000/500次的优惠了,已经根据上个月调用次数,例如在1到10万次,API每次被调用的费用是0.004$,下个月1号进行结算费用这种模式,不清楚后续API一次性设置费用会不会涨价,不过为Mathpix这样一款优秀的工具付费也是值得的,大家觉得呢?

拿到手的MathpixOCR API Keys是这样的:

matlab仿真推荐书目(一起来摸鱼拿Matlab剁手的那种)(5)

关于更多Mathpix的信息可以阅读以下相关的推文

  • 神器mathpix收费了?教你轻松调用API获得每个月500次免费识别!https://zhuanlan.zhihu.com/p/380433944
  • 调用Mathpix API 自制Mathpix snipping (每月1000次免费!!!)https://blog.csdn.net/weixin_44984664/article/details/105242426
2. ReadWords工具

这次工具改版,主要是在上一次文字识别工具基础上增加公式识别的功能,实现方法上利用标准的MVC设计模式,将界面与逻辑分离,而不像手把手教你,一个案例学会用Matlab App Designer设计文字识别工具(附源码)中介绍的把所有实现封装成一个类,主要界面如下所示

matlab仿真推荐书目(一起来摸鱼拿Matlab剁手的那种)(6)

matlab仿真推荐书目(一起来摸鱼拿Matlab剁手的那种)(7)

文字识别 公式识别

其次,增加了一些快捷键功能:

matlab仿真推荐书目(一起来摸鱼拿Matlab剁手的那种)(8)

其中公式识别演示如下:

matlab仿真推荐书目(一起来摸鱼拿Matlab剁手的那种)(9)

更多工具使用介绍请移步以下视频号

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};

以官网上提供的一个例子为例,

matlab仿真推荐书目(一起来摸鱼拿Matlab剁手的那种)(10)

当formats用latex_simplified参数时,可以得到如下的响应结果

matlab仿真推荐书目(一起来摸鱼拿Matlab剁手的那种)(11)

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,自动安装工具。
5. 结语

一直以来,我比较喜欢利用MVC的设计模式构建GUI/APP工具,虽然初次构建要比用guide/appdesigner设计器构建速度慢,也不是那么直观,但随着界面、逻辑越复杂化,越能体现出这种模式的优点。当然我们自己设计工具,哪种方法便利、顺手就用哪种。

这次通过将先前的文字识别工具:手把手教你,一个案例学会用Matlab App Designer设计文字识别工具(附源码) 重新用MVC模式重构,让我对这一模式有了新的认识和理解,也算是这两天摸鱼的收获吧。

工具中新增加的快捷键功能具有一定的局限性,即只能将焦点作用在uifigure上时才会生效,不能监听全局的键盘按键,这也是ReadWords工具后续版本优化的主要方向,也是难点,因为当前MATLAB的GUI/APP还没有实现这样的功能,或许需要借助其他语言帮助实现。

今天的分享就到这里了,喜欢这款工具的朋友们不妨下载下来试着玩一玩,有需要改进的地方请留言,祝大家周末愉快,希望国内疫情快快结束,祖国加油!

猜您喜欢: