# HardwritingRecognition **Repository Path**: missmess/HardwritingRecognition ## Basic Information - **Project Name**: HardwritingRecognition - **Description**: Android端手写识别组件,目前主要实现手写数字识别方面。支持单数字和多数字。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-03-08 - **Last Updated**: 2024-07-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: Android ## README ## HardwritingRecognition Android端手写识别组件,目前主要实现手写数字识别方面。 --- * [主要功能简介](#主要功能简介) * [添加到项目中](#添加到项目中) * [主要API](#主要API) --- ### 主要功能简介 * 单个数字识别 * 多个数字组合识别 ### 添加到项目中 a. 在根目录下的build.gradle下添加远程仓库地址: ```java allprojects { repositories { google() jcenter() maven { url "http://10.2.1.12:8081/repository/cloudlearning-release/" } } } ``` b. 在app的build.gradle里添加远程库的依赖: ```java implementation 'com.xes.hardwritingrecognition:hardwritingrecognition:1.2.0' ``` **从1.2.0开始,改为使用输入笔画的方式来识别,替代了之前版本中输入整个bitmap的方式。** ### 主要API ##### 1. 使用HWRecognizer的构造方法创建实例,第二个参数是识别库需要使用到的Model文件。(对应的tensorflow则使用的是pb文件)。 ```java HWRecognizer recognizer = new HWRecognizer(this, "mnist_1207.pb"); ``` ##### 2. 每手写一个笔画,将path输入到HWRecognizer。 ```java recognizer.addPath(path); ``` path以画布的左上角为原点,参考[demo](app/src/main/java/com/xes/recognitiondemo/HandWriteView.java)中path的获取。 ##### 3. 调用识别方法,将会处理已输入的所有笔画,并返回字符串的结果 ```java String result = recognizer.start(); ``` ##### 4. 新一轮识别前,需要清空已输入的paths。 ```java recognizer.clearPaths(); ``` ##### 5. 在合适的地方关闭,释放资源。 ```java recognizer.destroy(); ``` ##### 此外,如果需要查看日志和图片切割过程。请在创建实例前打开debug模式。 ```java HWRecognizer.DEBUG_MODE = true; ``` debug模式下,会生成日志,并在sd卡中app目录下按时间生成图片处理多个流程的生成图像,方便调试。 ### 4. 功能扩展 如果以后需要处理其它类型的场景或者使用其它引擎来处理图片或识别图片,则可以通过实现ImageProcessor和Classifier接口来完成。