黑马程序员技术交流社区

标题: 如何在10分钟内写一个速算题自动批改程序? [打印本页]

作者: A.I.搬运工    时间: 2019-12-5 14:59
标题: 如何在10分钟内写一个速算题自动批改程序?
本帖最后由 A.I.搬运工 于 2019-12-5 15:02 编辑

本文将全程带着大家一步步写出一个趣味小demo——速算题自动批改程序,并附上完整代码下载链接,供大家学习使用!

****视频课程链接请点击** [这里]
前期准备
如题所示,今天的课程是如题所示,今天的课程是一堂实践小课。一堂实践小课。  课程示例在Android 9环境下顺利执行,Android studio使用版本为3.5.2,大家在学习之前请安装好Android studio。
自动批改算术题的程序开发流程比较简单,其执行流程如下图所示:



支持拍照和本地图片选择两种模式,核心在于调用科大讯飞提供的“拍照速算识别”引擎,然后解析引擎,返回的结果进行绘图展示即可。

为了成功调用科大讯飞提供的“拍照速算识别”引擎,我们需要先在讯飞开放平台上注册并申请一个appid以备使用.

成功申请后,在控制台点击左侧“文字识别”-> "拍照速算识别",记录下APPID、APISecret、APIKey备用。


以上的课前准备完成之后,接下来就可以进入程序开发环节啦~
开发环节6部曲
第一部曲: 拍照并展示
调用相机的核心代码如下

不过这里有两个容易踩坑的点需要注意:
1.在7.0以上系统中,Android不再允许在app中把file://Uri暴露给其他app,所以不能直接通过file://访问文件,需要使用官方给出的解决方案FileProvider
2.需要提供相机和外部存储访问权限

**第二部曲: 访问文件**  


**第三部曲: 拍照速算识别引擎调用**
在获取到小学算数题的图片后,就可以开始调用拍照速算识别引擎了,在调用业务接口时,都需要在 Http Request Body 中配置以下参数,请求数据均为json字符串。

但实际操作时不需要这么麻烦,讯飞开放平台官网上提供了调用的示例代码,直接下载使用即可。

需要注意的是,示例代码中的星号部分需要替换为环境准备阶段申请的应用授权信息:


**第四部曲: 解析识别结果**
引擎返回结果为一个json结构,包含字段如下:

[attach]307755[/attach]
识别结果信息在data字段里,其中主要包含了识别出来的每个算数题的位置信息、算术题的识别文本结果、算数题判决正误信息。

**第五部曲: 绘图并展示**
对于计算正确的算术题使用绿色方框显示,对于计算错误的算术题使用红色方框显示。




第六部曲: 效果展示
至此,开发过程完成,让我们来体验一下程序的执行效果:

(1) 点开主界面,这里为了方便展示,选择“相册”


(2) 选择一张事先拍好的小学算数题


(3) 展示自动批改后的效果图


视频课程链接请点击 [这里]
完整源码下载请点击:[点击下载完整源码]


4.png (12.06 KB, 下载次数: 34)

4.png





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2