帮助与文档 > 产品文档 > 智慧学习服务 > Android_SDK文档 > 试卷手写体擦除
试卷手写体擦除

试卷手写体擦除android sdk接入

说明

Hi,您好,欢迎使用有道智云试卷手写体擦除Android SDK。

本文档主要针对需要集成试卷手写体擦除 Android SDK的开发工程师,详细描述试卷手写体擦除能力及集成过程。

如果您有与我们商务合作的需求,可以通过以下方式联系我们:

商务邮箱: AIcloud_Business@corp.youdao.com

如果您对文档内容有任何疑问,可以通过以下几种方式联系我们:

客服QQ:1906538062

智云语音技术交流QQ群:861723255

联系邮箱: zhiyun@corp.youdao.com

温馨提示:

本文档主要针对开发人员,接入测试前需要在后台创建 Android 应用,并绑定服务;如果您还没有,请按照 新手指南 操作。
平台向每个账户赠送50元的体验金,供用户集成前测试所用,具体资费规则详见 作试卷手写体擦除服务报价

概念解释

试卷手写体擦除服务:将图片自动识别并且去除图片上的手写作答痕迹,返回完整的空白试卷的版面信息。试卷擦除不区分语种、不区分学科,使用范围广,是业内识别准确率最高的接口。此服务通用性强,对不同光照与模糊情况下的图片都有很好的处理效果。在教育学习领域有较强的应用,同时支持企业服务等需要去除手写等场景

功能介绍

试卷手写体擦除安卓sdk 是有道智云开放平台提供的云服务之一,是试卷手写体擦除接口的安卓实现。

流程介绍

图像数据 => 转换成Base64编码 => 网络请求 => 返回结果(Base64编码)=> 图像数据

兼容性

支持设备:运行了 Android 9及以上系统的 Android 设备

SDK集成指南

集成前提

开始集成SDK之前开发者需要登录 有道智云平台 ,创建应用获取应用ID(或者通过运营人员获取应用ID),以便使用作文批改服务。

注:应用ID即Appkey,需要安卓SDK类型。

Demo运行步骤

根据官网控制台 提示,直接下载SDK,SDK中包含简易可运行的Demo。如下图所示:

lib文件夹下为试卷擦除的jar包

traslateSdk为试卷擦除的demo

接入文档和demo运行需要修改位置的Readme.txt

1.使用AndroidStudio 导入项目

打开Redame.txt,按步骤修改demo即可

image-20230214113227015

1.修改Appkey和AppSecret

2.build.gradle 修成为自己Appkey所对应的包名

image-20230313142745864

3.修改完成之后,连接设备就可以运行了

image-20230313143026158

4.demo启动

5.选择要擦除的试卷图片

6.点试卷擦除按钮

SDK初始化

使用作文批改SDK,请在程序的Application中调用SDK初始化代码,可以参考demo中MyApplication
注:appKey即应用id 。sdk请使用sdk类型的appkey

   
    //TODO 修改成智云官网申请的AppKey和AppSecret   
    private val MY_APP_KEY = ""
    private val appSecret = ""

    override fun onCreate() {
        super.onCreate()
        YouDaoApplication.init(this,MY_APP_KEY,appSecret)
    }

功能集成

试卷手写体擦除

        OcrWritingErase.mTimeout = 3 *1000 //设置超时
        OcrWritingErase.erase(  
            q =imageBase64,  //要擦除试卷的图片的base64
            angleFlag = true, //是否进行360角度识别
            listener= object : EraseListener {
                override fun onError(errorCode: Int?, msg: String?, requestId: String?) {
                    Log.e(TAG, "onError:  errorCode:$errorCode,msg:$msg,requestId:$requestId", )
                }

                override fun onResult(originalImg:String,eraseEnhanceImg:String, requestId: String) {
                    runOnUiThread {

                        binding.button3.isEnabled =false
                        lifecycleScope.launch{
                            withContext(Dispatchers.Main){
                                binding.button3.isEnabled =true
                                val bytes: ByteArray = Base64.decode(eraseEnhanceImg, Base64.DEFAULT)
                                binding.imageEraseAfter.setImageBitmap(BitmapFactory.decodeByteArray(bytes,0,bytes.size))
                            }
                        }

                    }
                }

            }
        )

错误码参考api文档