title author date CreateTime categories
WPF 使用 MyScript 的 IInk 做手写识别
lindexi
2019-11-20 08:18:26 +0800
2019-11-18 16:32:28 +0800
WPF

有小伙伴问我可以如何在 WPF 使用其他第三方提供的库进行手写识别,上次 MyScript 的工程师和我吹,他做了世界上识别最好的库,本文就来安利一下大家这个库。这里库是收费的库,但是可以免费使用,只要不是有大量用户,这个库还是免费用的。用这个库可以在 Windows 平台识别数字、多个不同语言、数学公式手写识别

我对比了这个库和微软自带的手写识别,在识别英文和数字上,其实差别不大。但是 MyScript 的 IInk 对数学公式的识别是超级厉害,至少我还没有找到一个比他厉害的。但是在识别中文上就比微软自带的差一点了

在 MyScript 的使用限制是需要指定当前用户书写的内容,如先设置为英文,此时就会使用英文识别。另外识别的计算速度不快,不过做实时识别还是可以的,这要求你的设备不能太差。基本上能将 LoL 运行起来,玩的时候不会砸键盘的设备就能做实时识别

好了,我知道怎么吹小伙伴都是不信的,让我给出一张图片证明。这是一张比较大的 GIF 图片,所以我放在了 sm.ms 上,如果看不到图片就刷新

小伙伴也许会认为我是用了100000挑里面最好的一个放上来,下面就来告诉搭建如何开发

不要问那么多,上车咯

先通过 Github 下载官方的例子 MyScript/interactive-ink-examples-wpf: MyScript Interactive Ink examples and user interface reference implementation for Windows WPF.

下载完成之后,不要急着打开,因为这是一个收费的库,所以需要下载许可证。下载许可证的路线有点长,需要注册帐号写申请,然后这个网站又在国外,所以可能需要小伙伴一点时间。申请帐号地址是 https://developer.myscript.com/getting-started 申请完成会在邮件收到 MyCertificate.cs 文件,将这个文件替换到下载的仓库的 GetStarted\MyCertificate.csDemo\MyCertificate.cs 如果小伙伴都不想申请,或者打不开网站,可以发邮件给我使用我的文件

免费的 MyCertificate.cs 可以用在100个设备上

如果你看到本文时,官方还没有修复 MyScript.InteractiveInk.GetStarted.Wpf-VS2017.csproj 的坑,也就是我在 github 上提出的问题,那么请小伙伴手动删除 <HintPath>..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\PresentationCore.dll</HintPath> 这段代码,以及下面差不多的代码

此时通过 VisualStudio 打开,设置 MyScript.InteractiveInk.GetStarted.Wpf-VS2017 作为启动项目,还原 NuGet 库,然后就可以运行了

此时运行如何编译太久了,请看仓库的 recognition-assets 文件夹是否有内容,在 getRecognitionAssets.ps1 将会下载一些需要的库,可以自己手动下载替换文件。如果你无法下载,请发邮件给我给你文件

运行默认的是文字识别,可以识别英文和数字,可以做到实时识别

如果想要用本文说的手写公式识别功能,请打开 GetStarted\MainWindow.xaml.cs 文件,修改 PART_TYPE 的值

        private const string PART_TYPE = "Drawing";
      

修改之后请重启程序,现在就可以试试公式识别,需要手动点击 Convert 按钮才能识别

这个库好不好用,请小伙伴自己测试如果还是无法编译成功,请找我要编译完成文件

再次说明,我没有收 MyScript 的好处

2019-11-20-WPF-使用-MyScript-的-IInk-做手写识别的更多相关文章

  1. 【2019.11.20】SDN上机第4次作业

    安装OpenDayLight控制器 配置JAVA环境 https://www.opendaylight.org/ 在官网进行下载OpenDayLight控制器 启动OpenDayLight控制器和安装 ...

  2. MyScript 手写识别数学公式、图形 自动计算

    项目的地址  http://git.oschina.net/bimingcong/MyScript #说明:MyScript是一种能够自动识别用户在屏幕上的手势,然后转化为相应的数学公式.图形(比如三 ...

  3. EOJ Monthly 2019.11 E. 数学题(莫比乌斯反演+杜教筛+拉格朗日插值)

    传送门 题意: 统计\(k\)元组个数\((a_1,a_2,\cdots,a_n),1\leq a_i\leq n\)使得\(gcd(a_1,a_2,\cdots,a_k,n)=1\). 定义\(f( ...

  4. [New!!!]欢迎大佬光临本蒟蒻的博客(2019.11.27更新)

    更新于2019.12.22 本蒟蒻在博客园安家啦!!! 本蒟蒻的博客园主页 为更好管理博客,本蒟蒻从今天开始,正式转入博客园. 因为一些原因,我的CSDN博客将彻底不会使用!!!(带来不便,敬请谅解) ...

  5. 2019.11.9 csp-s 考前模拟

    2019.11.9 csp-s 考前模拟 是自闭少女lz /lb(泪奔 T1 我可能(呸,一定是唯一一个把这个题写炸了的人 题外话: 我可能是一个面向数据编程选手 作为一个唯一一个写炸T1的人,成功通 ...

  6. 只有20行Javascript代码!手把手教你写一个页面模板引擎

    http://www.toobug.net/article/how_to_design_front_end_template_engine.html http://barretlee.com/webs ...

  7. 最新用WPF为触摸屏写了一个手写程序,双格输入的

    原文:最新用WPF为触摸屏写了一个手写程序,双格输入的 双格输入可以提高手写速度,当前字写完以后可以自动识别提交,写下一个字.这样比单格手写速度提高一倍.特别适合触摸屏程序使用 界面如下: 程序如下: ...

  8. 2019前端面试系列——JS高频手写代码题

    实现 new 方法 /* * 1.创建一个空对象 * 2.链接到原型 * 3.绑定this值 * 4.返回新对象 */ // 第一种实现 function createNew() { let obj ...

  9. WPF启动流程-自己手写Main函数

    WPF一般默认提供一个MainWindow窗体,并在App.Xaml中使用StartupUri标记启动该窗体.以下通过手写实现WPF的启动. 首先先介绍一下VS默认提供的App.Xaml的结构,如下图 ...

  10. .NET Core/.NET5/.NET6 开源项目汇总11:WPF组件库1

    系列目录     [已更新最新开发文章,点击查看详细] WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Frame ...

随机推荐

  1. 关于obj文件的理解

    编译器先编译.cpp为obj文件,看看文件内有没有冲突,然后再进行链接,链接头文件引入的lib库等等,然后就生成exe文件了,下面这个图说的很好:

  2. C语言开发系列-二进制

    n位二进制的取值范围 -2的n-1次方 ~ 2的n-1次方-1 输出一个整数的二进制的存储形式 #include <stdio.h> // 输出一个整数的二进制的存储形式 void put ...

  3. linux使用wget

    wget is a Linux command-line utility for retrieving files from the web, via HTTP, HTTPS and FTP prot ...

  4. Windows API 第16篇 GetLogicalDrivers 获取驱动器位掩码

    函数原型:DWORD GetLogicalDrives(VOID);The GetLogicalDrives function retrieves a bitmask representing the ...

  5. java虚拟机(十)--性能监控工具测试内存溢出和死锁基本思路

    在之前就曾经简单介绍过jdk自带的性能检测工具,但是只是很入门的内容.没有真正的用过都是白扯了,面试的时候也说不过去,更别提真正 在生产环境去解决问题,所以这里我们学习一下真正解决问题的过程,最起码面 ...

  6. Python-可变类型与不可变类型

    可变类型 可以变化的,列表和字典 利用id()函数 查看内存地址 内存地址变化即不可变类型. 内存地址不变化即可变类型 不可变类型 不可以变化的,字符串和数字 字符串内置方法 索引取值 索引切片 成员 ...

  7. 常用的git操作命令

    整理来源于廖雪峰的git教程https://www.liaoxuefeng.com git: 分布式版本控制系统  本地有完整的代码库,还有远程代码库 svn: 集中式版本控制系统 必须联网时才可提交 ...

  8. 技术 | TypeScript

    技术 | TypeScript   第一次接触TypeScript还是和一帮兄弟在居民楼里撸每日优鲜App的时候,没有想过那么多,只想可以快速实现和快速落地,于是我们选择ionic这个Hybrid框架 ...

  9. struts2-result-servletAPI-获得参数-参数封装

    1 结果跳转方式  转发 重定向 转发到Action 重定向到Action 2 访问servletAPI方式 2.1 原理 2.2 获得API 通过ActionContext ★★★★ 通过Servl ...

  10. kuangbin带我飞QAQ DLX之一脸懵逼

    1. hust 1017 DLX精确覆盖 模板题 勉强写了注释,但还是一脸懵逼,感觉插入方式明显有问题但又不知道哪里不对而且好像能得出正确结果真是奇了怪了 #include <iostream& ...