java+整合handwrite_GitHub - wmz46/HandWriteRecognizer: 封装Microsoft.Ink为C++动态库,可供其他语言调用手写识别...
HandWriteRecognizer
封装Microsoft.Ink为C++动态库,可供其他语言调用手写识别
在java中使用
根据windows系统下载release中的win32.zip或win64.zip。其中HandWriteRecognizerLib.dll为C++动态库,Microsoft.Ink.dll为微软手写识别库,HandWriteRecognizerCSharp.dll是C#封装的中间层。
将C#的两个dll拷贝到java的bin目录,如果java是32位拷贝win32的,如果java是64位的拷贝win64的。
jna引用HandWriteRecognizerLib.dll
识别接口:
char* recognizer(char* strokes, int count)
strokes入参为笔画字符串,多个笔画用,eb,分割,笔画中的每个点按x1,y1,x2,y2,x3,y3顺序拼接。如x1,y1,x2,y2,x3,y3,eb,x1,y1,x2,y2,...
count入参为返回的最大识别字符数,返回接口可能小于等于该数。
返回为识别结果字符串,字符以英文空格间隔。
调用示例
定义jna接口
public interface HandWriteRecognizerLibrary extends Library {
//虽然loadLibrary已过时,不过试了load在springboot网站无法正常加载,原因未知。
HandWriteRecognizerLibrary INSTANCE = Native.loadLibrary("HandWriteRecognizerLib", HandWriteRecognizerLibrary.class);
Pointer recognizer(Pointer strokes, int count);
}
调用jna接口
Pointer strokesStrPointer = new Memory(strokesStr.length());
byte[] bytes = strokesStr.getBytes();
strokesStrPointer.write(0, bytes, 0, bytes.length);
Pointer result = new Memory(count * 2);
result = HandWriteRecognizerLibrary.INSTANCE.recognizer(strokesStrPointer, count);
String temp = result.getString(0);
if (StringUtils.isEmpty(temp)) {
return new String[0];
} else {
return temp.split(" ");
}
打包说明
请用vs2019(C++编译我不在行,使用其他IDE我不清楚怎么整)打开项目文件HandWriteRecognizer.sln。先右键HandWriteRecognizerCSharp项目生成后,再右键HandWriteRecognizerLib生成项目。最终生成目录在根目录的Debug或Release文件夹。将文件夹中的三个dll拷贝出来即可。
java+整合handwrite_GitHub - wmz46/HandWriteRecognizer: 封装Microsoft.Ink为C++动态库,可供其他语言调用手写识别...相关推荐
- 数字手写识别——Java实现KNN算法
引言 手写识别也是当前机器学习的一大热点,数字手写识别是手写识别中的基础,我们用到的是knn算法,今天给大家讲一下我的实现方法: 环境 IDE:Eclipse 语言:Java 项目:数字手写识别 思路 ...
- java文字手写识别_【手写文字识别】-JavaAPI示例代码
手写文字识别-JavaAPI示例代码 不知不觉手写文字识别百度已经开始邀测了.需要的小伙伴去申请了哦.申请方式加入文字识别群找PM.或者工单提交申请.都要说明自己的APPID哦. 接口地址:https ...
- c++封装so库,供安卓android调用
文章目录 一.概述 二.用C/C++开发出Linux的so库 1.开发分析: 2.开发准备: 三.在C/C++代码里加入JNI,支持java通过JNI调用so库 1.JNI 是Java Native ...
- 手写识别ocr java,OCR 指的是手写文字技术_学小易找答案
[判断题]双人舞中的动作必须是两个人一模一样的.( ) [单选题]____________________ engaged in the sale of products using marketin ...
- 手写识别ocr java,怎么识别手写文字?迅捷OCR文字识别软件帮你快速完成!
怎么识别手写文字?虽然现在手机.平板等设备已经普及开来,但是从小在学校养成的习惯,还是让大部分人选择会手写的方式.手写其实也有很大的缺陷,无论是在生活中还是在网络上进行分享都比较困难. 那么有没有将手 ...
- java手写识别_手写识别系统
目的 采用k-近邻算法实现手写识别系统.这里采用0和1组成数字0-9的形状,再用算法对这些形状进行识别,来分辨出形状属于0-9那个数字.并计算出k-近邻算法识别手写数字的错误率. 数据说明 数据来自& ...
- java linkedlist底层_手写Java LinkedList核心源码
上一章我们手写了ArrayList的核心源码,ArrayList底层是用了一个数组来保存数据,数组保存数据的优点就是查找效率高,但是删除效率特别低,最坏的情况下需要移动所有的元素.在查找需求比较重要的 ...
- 【错误记录】NDK 导入外部 so 动态库报错 ( java.lang.UnsatisfiedLinkError | Android Studio 配置外部 so 动态库两种方法 )
文章目录 一.报错信息 二.解决方案 ( Android Studio 配置外部 so 动态库两种方法 ) 1.jniLibs 目录存放 2.libs 目录存放 一.报错信息 外部引用 so 动态库 ...
- 纯jsp实现评论功能_自己实现的java手写tomcat
这是一个java写的模拟tomcat工作原理的demo,是一个极简的tomcat服务器,也是我们培训班(邦邦IT教育)的讲义,是整个j2ee培训的精髓,理解了这个demo其实后面的很多东西都是可以自学 ...
- JAVA简单手写数字识别
作为一个机器学习的初学者,首先肯定是要有点自己的对机器学习的看法的.我认为的机器学习(在我目前接触到的知识来说.!!(大佬勿喷)),机器学习专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或 ...
最新文章
- sql常用语句使用方法
- 大数据安全标准现状和思考
- 第1部分:Ajax 入门简介
- TensorFlow Lite+Android,Google要搞的大事情
- UVA 10519 !! Really Strange !!
- java jks 转pfx_JKS和PFX文件相互转换方法
- 【Vue.js源码解析 三】-- 模板编译和组件化
- 数据结构实习-迷宫(基于Qt实现)
- 手把手教你从0到1进行Java项目实践
- Spark RDD Action
- 感情在钱面前一文不值,开公司谨记这6大规则
- 多线程之旅七——GUI线程模型,消息的投递(post)与处理
- 敏捷软件开发 - 原则、模式与实践
- 关于Vue中v-if 和 v-for一起使用
- mysql省市联动_sql全国 省市 联动级联
- 洛谷 P4556 [Vani有约会]雨天的尾巴 解题报告
- 采用汇编语言对c语言函数调用的方法求平均数 汇编实验报告,汇编措辞调用C措辞求平均数.doc...
- 遗传算法--函数最值问题
- jmeter将上一个接口的返回值作为下一个接口的参数
- “不能read和written”的关键因素—内存
热门文章
- 微信小程序使用 ocr 身份证识别
- 01 统计学与试验设计思想
- shl归纳推理测试题库_shl归纳推理测试答案
- 分布式操作系统的架构与性能
- windows下载mysql太慢
- java编写进行货币兑换_货币汇率java assignment
- Mac终端使用rzsz
- curviloft插件怎么用_Curviloft插件下载
- 地理空间坐标系统-城市坐标系与国家统一坐标系之间的转换(含四参数转换代码)
- gaussian09使用教程linux,Gaussian-09-GaussView5.0使用教程.ppt