专栏首页施炯的IoT开发专栏Windows 10 IoT Serials 10 – 如何使用OCR引擎进行文字识别

Windows 10 IoT Serials 10 – 如何使用OCR引擎进行文字识别

1. 引言   

    OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。

    在Windows 10通用应用程序UWP示例中,包含了OCR应用程序,具体请参考(https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/OCR),利用该应用程序,用户可以完成以下功能:

    1. 检测当前设备支持的OCR语言

    2. 获取当前设备可用的OCR语言

    3. 创建针对某种语言的OCR识别实例

    4. 加载图片,识别图片中的文字

    5. 从摄像头捕捉的图片中识别文字

    6. 将识别的文字覆盖在图片上

2. 问题

    该通用应用程序在PC平台上运行,没有出现问题。但是部署到Windows 10 IoT Core设备以后,会出现如下错误:“No available OCR languages.” 、”English is not supported”,如下图所示。

3. 解决方法

    上述问题的出现,是由于Windows 10 IoT Core设备上没有OCR的相关资源,导致程序无法正常运行。解决方法如下:

    首先,将Windows 10设备的C:\\Windows\OCR目录拷贝到Windows 10 IoT Core设备的c$\Windows目录,如下图所示。

    接着,将C:\Windows\System32\CatRoot\{*****} 中的 Microsoft-Windows-LanguageFeatures-OCR-en-us-Package... .cat文件拷贝到Windows 10 IoT Core设备的c$:\Windows\System32\CatRoot\{*****}目录,如下图所示。

4. 调试

    本次调试在MBM板子上进行,Windows 10 IoT Core设备的OS版本号为v.10.0.16299.192,采用的摄像头为微软LifeCam HD-3000

    首先,调试OCR图片中文识别,结果如下:

    可以看到,中文的识别准确度挺高,基本上都识别出来了。

    接着,在调试用摄像头进行OCR中文识别和OCR英文识别,结果分别如下图所示。

    从图中可以看出,摄像头识别的结果依赖于光线、摄像头分辨率等因素,环境光越好,摄像头分辨率越高,则识别精度就越高。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 控制Arduino的利器-Windows Remote Arduino

    1. 概述     相信很多朋友已经在玩 Arduino了,而且一般都是使用官方的Arduino IDE来写程序控制Arduino硬件。为了能够实现更加方便的控...

    ShiJiong
  • 用本地代码实现屏幕方向自适应的Windows Mobile程序

        在Windows Mobile平台的应用程序开发过程中,如何处理屏幕方向改变对程序带来的影响是一个重要的问题。Allen Lee的文章《WM有约(四):...

    ShiJiong
  • 《101 Windows Phone 7 Apps》读书笔记-BABY MILESTONES

    课程内容 Ø图片的读写 Ø序列化 Ø双向数据绑定     Baby Milestones将婴儿从出生到2岁之间的发展关键里程碑通知给父母。该应用程序使得父母能...

    ShiJiong
  • Groovy-5.文件I/O

    通过File类的isFile和isDirectory属性,可以检查路径是文件还是目录:

    悠扬前奏
  • 纯JavaScript实现的调用设备摄像头并拍照的功能

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    Jerry Wang
  • 安卓开发-使用异步网络请求框架、多线程文件下载

    相信对于前面的教程,大家已经很熟悉安卓网络编程了。这篇文章主要讲解一下异步网络编程和文件下载。学习编程重在写代码,只有自己的代码量上去了,自己才能完全理解。所以...

    做全栈攻城狮
  • 解决下载Python扩展包很慢的方法

    在线安装扩展包时,默认是直接从pypi官网下载的,而pypi服务器又在国外。这样一来网速会很慢,甚至直接就挂了。

    fem178
  • 业务逻辑中如何处理断线重连

    之前一直对如何在业务逻辑中处理断线重连没有一个清晰的认识,后来做了一些思考,这里简单记录一下~

    用户2615200
  • 干货满满--亲身经历的 Python 面试题

    如果看过我第一篇文章(三个月自学拿到 python 开发 offer!)的朋友可能知道,我来上海一个多星期,面试了大概十几家公司,收到了一些 offer,其实截...

    Rocky0429
  • 手游的机遇与挑战

    随着智能终端和移动互联网的高速发展,客户端游戏和客户端网游的发展开始放缓,为了迎合人们现在碎片化时间的发展趋势,各大游戏巨头企业将目光投向了手机游戏市场,与移动...

    阳光岛主

扫码关注云+社区

领取腾讯云代金券