http://www.iteye.com/topic/288045
你可以在线测试: http://quake.3322.org/
我最先google到一个开源的手写输入引擎是Tomoe: http://tomoe.sourceforge.jp,它包括识别引擎,整套的用户界面(GTK)以及SCIM的输入法模块,最初是只支持识别日文,在0.6.0版本red hat的工程师贡献了简体中文字典。因为在android系统上已经有很好的用户界面支持(触摸屏api),其实只需要一个识别引擎就可以了,Tomoe的代码太多,学习起来比较耗费时间。后来在Tomoe的邮件列表上发现了Zinnia: http://zinnia.sourceforge.net/,这个东西很小巧,也很有特色:
1. 基于SVM,识别率高
2. 基于C++标准库,容易移植
3. 提供线程安全库,C/C++/Perl/Ruby/Python容易调用
4. 训练速度和识别速度都很快,识别据说可以达到50~100字/秒
安装zinnia很简单,下载源代码以后解压缩编译安装即可:
- ./configure
- make
- sudo make install
./configure
make
sudo make install
因为我对ruby比较熟悉,顺便测试了一下它的ruby库调用,在zinnia源代码目录下面有个ruby目录,运行
- ruby extconf.rb
- make
- sudo make install
ruby extconf.rb
make
sudo make install
就可以安装好它的ruby扩展库,如何调用代码可以看一下ruby目录下面的test.rb
Zinnia通过解析用户输入的笔画顺序以及坐标,列出前N个最合适的文字,输入字符串包括画布宽度/高度以及坐标值,格式如下:
- (character
- (width canvas width)
- (height canvas height)
- (strokes
- ((0-th-stroke 0-th-strokey) ... (0-th-stroke 0-th-strokey))
- ((1-th-stroke 0-th-strokey) ... (1-th-stroke 1-th-strokey))
- ((2-th-stroke 2-th-strokey) ... (2-th-stroke 2-th-strokey))
- ...))
(character
(width canvas width)
(height canvas height)
(strokes
((0-th-stroke 0-th-strokey) ... (0-th-stroke 0-th-strokey))
((1-th-stroke 0-th-strokey) ... (1-th-stroke 1-th-strokey))
((2-th-stroke 2-th-strokey) ... (2-th-stroke 2-th-strokey))
...))
前面的demo是抄袭一个基于ajax的日文手写输入Demo:http://www.chasen.org/~taku/software/ajax/hwr/,后台是通过ruby调用zinnia,你可以从附件下载到源代码。
测试下来有少量的字识别率不高,比如"子","人"等,猜测可能和模型数据和算法都有关系。
因为zinnia是基于C++的,下一步要学习一下如何在android上交叉编译,过一段时间再写第2篇博客介绍。
- 大小: 70.1 KB
分享到:
相关推荐
android 手写输入,以及清除,橡皮擦等功能
Android手机手写输入源码,可以实现手写输入文字等,完整工程文件,可以编译运行。
android 手写输入,以及清除,橡皮擦等功能.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
手写输入 保存 真实字迹 AddImageActivity.java ColorPickerDialog.java MyBaseAdapter.java MyView.java
Android手机手写输入源码
Google ML Kit 子组件 Ink Recognition
android手写轨迹保存demo,支持换行,插入空格,轨迹自动缩小,删除,更改画笔颜色,绝对实用
记事工具,便签,手写涂鸦,android
hanwang手写输入法android版本,最好用的android手写输入法。
实现一个功能完善,界面精美的手写输入和涂鸦的源码
android手写签名,不用短时间输入,可以慢慢的写,支持多笔画,可以迅速清除并重写
可以把android手机作为 输入板使用 通过过手机里面的手写输入法, 适合中老年在电脑上输入文字 功能虽然简单,但是是自己编写,经过反复测试,稳定高效。 需要源码的朋友参见另一个资源 ...
这是我用google的android写的一个手写输入程序.基本功能已完成.
安卓Android源码——五种不同的Toast效果.zip
Android手写识别控件,支持简体和繁体输入,能够识别的汉字请查看hw_recognize_result.txt文档。
可以把android手机作为 输入板使用 通过过手机里面的手写输入法, 适合中老年在电脑上输入文字 偶然想到可以把android手机当做手写板来使用。 虽然立刻就在网络上搜索到了同类工具, 但是后来还是自己花了几天...
很普通的文章,只是提出了一个很好进行手写的构思
汉王授权华为手机专用版本,支持全屏手写和魔格输入。和联想乐phone上预装的手写功能一样。
android写的小程序,主要功能为 在屏幕上手写数字1-9,显示出手写的是数字几。然后显示手写所用时间