我想编写一个应用程序(最初是Windows),其中包括手写文本识别功能。我想使用Windows内置的平板电脑输入。我的问题是有没有办法将笔画捕获为图像,"将这些笔划发送到Tablet输入使用的OCR引擎,并返回识别的文本?
或者,有没有可以直接使用的好的开源手写库?
主要开发语言是Qt。
答案 0 :(得分:1)
我不知道有任何用于手写识别的开源或免费软件库,所以我写了一个适配器。我的目标是运行Linux的平板电脑,但我的部分解决方案也可以直接在Windows上使用,但您需要根据自己的需要进行调整。
您需要仔细阅读我使用的组件的许可证,并验证您自己对它们的使用。
可在此处获取来源:Ink2Text project
此解决方案的一部分是使用XP手写识别库来解释构成手写的笔划的服务器。另外,这不使用OCR - 它使用笔画流的连通图。
另一个补充项目提供了一个客户端手写小部件:Stylus/Handwriting Input Panel。这是用Java编写的,它是GPL3。它接受手写并将其发送到服务器。除非您希望按原样使用它,否则仅仅看到墨水的数据格式是有价值的,尽管这很简单,您可以仅使用Ink2Text源代码推断出它。
早期的解决方案使用S / HIP和我的MS Ink Server,它通过常规网络连接接受输入。根据您的体系结构,这可能也很有用,但需要运行Windows副本。
该系统可以很好地识别印刷和草书手写。
我会在相关的SourceForge论坛中回答有关它的问题,以便其他人也可以从答案中受益 - 请不要在这里问。
干杯, 布雷特
答案 1 :(得分:0)
我想错了,但不幸的是,没有可用的开源离线手写识别系统,甚至接近MS'或Apple的墨水。
在Windows上,您可以使用墨迹识别(About Handwriting Recognition,Advanced Recognition Sample)。 C ++接口是可用的,但没有像.net实现那样详细记录。因此,您需要付出更多努力并进行大量研究才能实现您的目标。
对于其他系统(包括Windows),可以在应用程序中使用Tesseract-OCR。见Tesseract's base api。为了获得更好的识别质量,您可以train tesseract使用自己经过培训的数据。
如果您不想花时间执行上述R& D任务,可以使用付费解决方案,例如:MyScript SDK,WritePad SDK等等......