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