`
rongyandong
  • 浏览: 31509 次
  • 性别: Icon_minigender_1
  • 来自: 内蒙古
社区版块
存档分类
最新评论

android手写输入

 
阅读更多

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很简单,下载源代码以后解压缩编译安装即可:

Shell代码 复制代码 收藏代码
  1. ./configure
  2. make
  3. sudo make install
./configure
make
sudo make install


因为我对ruby比较熟悉,顺便测试了一下它的ruby库调用,在zinnia源代码目录下面有个ruby目录,运行

Shell代码 复制代码 收藏代码
  1. ruby extconf.rb
  2. make
  3. sudo make install
ruby extconf.rb
make
sudo make install


就可以安装好它的ruby扩展库,如何调用代码可以看一下ruby目录下面的test.rb
Zinnia通过解析用户输入的笔画顺序以及坐标,列出前N个最合适的文字,输入字符串包括画布宽度/高度以及坐标值,格式如下:

Zinnia代码 复制代码 收藏代码
  1. (character
  2. (width canvas width)
  3. (height canvas height)
  4. (strokes
  5. ((0-th-stroke 0-th-strokey) ... (0-th-stroke 0-th-strokey))
  6. ((1-th-stroke 0-th-strokey) ... (1-th-stroke 1-th-strokey))
  7. ((2-th-stroke 2-th-strokey) ... (2-th-stroke 2-th-strokey))
  8. ...))
(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 手写输入

    1. **Android手写输入API**: Android SDK中的`android.inputmethodservice.InputMethodService`类是实现手写输入服务的基础。开发者需要继承这个类,并覆写其中的方法来处理手写轨迹的捕捉、识别和转换为文本。`...

    最新android手写输入 很值得借鉴

    本项目"最新android手写输入 很值得借鉴"着重关注了手写输入的实现、保存以及真实字迹的保持,这将是一个对开发者非常有价值的参考资源。 首先,我们来看`AddImageActivity.java`。这个类很可能是应用的主要活动之...

    Android手机手写输入源码

    在Android平台上,手写输入是一种常见的输入方式,尤其对于不熟悉拼音或键盘输入的用户,如老年人或非汉语使用者。本资源"Android手机手写输入源码"提供了一个完整的工程,用于实现Android设备上的手写输入功能。...

    安卓手绘图片处理画板相关-android手写输入以及清除橡皮擦等功能.rar

    1. SurfaceView与Canvas:在Android中,为了实现实时的手写输入,通常会使用SurfaceView来创建一个独立的绘图表面,然后通过Canvas进行绘制操作。SurfaceView提供了高效的图形渲染性能,适合用于需要连续更新视图的...

    android手写识别SDK

    Android手写识别SDK是Google ML Kit的一个重要子组件,它为开发者提供了强大的工具,以便在Android应用程序中实现手写文字的识别和解析。ML Kit是Google提供的机器学习服务框架,旨在简化移动应用开发中的复杂AI功能...

    手写战争 iOS.Android、Windows8与笔的实战文.pdf

    二、Android手写输入 在Android平台上,手写输入主要依赖于Android SDK中的InputMethodService和InputConnection接口。开发者可以通过实现这些接口,创建自定义的输入法服务,支持手写识别。Android还提供了android...

    android手写轨迹保存(防有道云笔记手写输入)

    这个"android手写轨迹保存(防有道云笔记手写输入)"的项目,旨在提供一个能够记录用户手写输入并进行编辑的示例。下面将详细阐述这个项目中的核心知识点。 1. 手写轨迹获取: - 在Android中,我们可以利用...

    手写记事本

    【标题】"手写记事本"是一款专为Android用户设计的记事工具,它集成了便签功能和手绘涂鸦,旨在提供一个个性化且便捷的记录方式。这款应用允许用户通过手写的方式记录生活点滴,同时也支持文字输入,满足不同场景下...

    hanwang.zip_android_android handwriting_android手写_libCalla.so_输入

    "android android_handwriting android手写"这一标签明确了这个输入法是专为Android系统设计的,并且专注于手写输入。Android系统以其开放性和可定制性著称,因此开发一款针对其优化的手写输入法是十分必要的。 ...

    Android 手写签名 电子签名

    对于Android手写签名功能,我们可以利用触摸屏设备的输入事件来捕捉用户的笔迹。这涉及到Android的MotionEvent类,它封装了触控屏幕时的坐标信息。通过监听ACTION_DOWN、ACTION_MOVE和ACTION_UP等事件,我们可以记录...

    android 手写签批

    开发者需要编写算法来分析用户的手写输入,决定何时换行,以及如何调整已有的签批内容布局。 4. **原比例缩放**:保持原笔迹比例缩放意味着签批的内容在放大或缩小时,线条的粗细和形状应保持一致,不因缩放而变形...

    手写输入扩展

    例如,Android 和 iOS 系统都内置了手写输入功能,用户也可以下载第三方输入法应用,如百度输入法、搜狗输入法等,这些应用提供了更多个性化和高级的选项。在这些应用中,"HandInput"可能是特定的手写输入模块或工具...

    android手写Http协议上传文件

    "android手写Http协议上传文件"这个主题就是关于如何利用Socket编程实现一个简单的HTTP协议来上传本地文件到服务器的过程。下面将详细讲解这个过程涉及的关键知识点。 1. **HTTP协议基础**: HTTP(超文本传输协议...

    Android电子签名手写板

    这个项目的核心目标是提供一个用户友好的界面,让用户能够通过触屏进行手写输入,然后将签名转换为图像(Bitmap)以便于存储和传输。以下是对这个"Android电子签名手写板"项目的详细分析和相关知识点: 1. **手写板...

    android手写上传

    1. **Android绘图API**:Android提供了多种API供用户进行手写输入,例如`Canvas`类,它允许我们在`Bitmap`上绘制线条、形状和文本。`Path`对象用于构建复杂的路径,可以用来模拟手写笔迹。`MotionEvent`则用于处理...

    Android手写签名 附带背景保存

    首先,我们需要创建一个可以进行手写输入的界面。这通常通过使用`Canvas`和`SurfaceView`来实现。`SurfaceView`是Android提供的一种高性能视图,适合处理大量的图形更新。我们可以在`SurfaceView`上绘制用户的手写...

    Android应用源码PDF手写签名商业源码.zip

    该压缩包文件“Android应用源码PDF手写签名商业源码.zip”主要包含了一个Android应用程序的源代码,用于实现PDF文档的手写签名功能。在移动设备上,这种功能对于签署电子文档尤其有用,例如合同、协议等。让我们深入...

    android手写与涂鸦

    在Android平台上,手写输入和涂鸦功能是许多应用程序中不可或缺的部分,特别是在教育、艺术、设计和便签类应用中。本源码实现了一个高效、用户友好的手写与涂鸦系统,旨在提供一个全面的解决方案,让用户可以自由地...

Global site tag (gtag.js) - Google Analytics