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英文识别,结果分别如下图所示。

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

Windows 10 IoT Serials 10 – 如何使用OCR引擎进行文字识别的更多相关文章

  1. Windows 10 IoT Serials 2 - Windows 10 IoT RTM 升级教程

    7月29日,微软推出了Windows 10 for PC的正式版,其版本号是Build 10240.近两天官方说已经有4700万的下载安装量,同时这个数字还在不断攀升.另外,除了Windows 10 ...

  2. Windows 10 IoT Serials 5 - 如何为树莓派应用程序添加语音识别与交互功能

    都说语音是人机交互的重要手段,虽然个人觉得在大庭广众之下,对着手机发号施令会显得有些尴尬.但是在资源受限的物联网应用场景下(无法外接鼠标键盘显示器),如果能够通过语音来控制设备,与设备进行交互,那还是 ...

  3. Windows 10 IoT Serials 3 - Windows 10 IoT Core Ardunio Wiring Mode

    Maker社区和智能硬件的朋友一定知道Arduino,很多3D打印机都是用它做的.为了迎合这一大块市场,微软在基于Intel Galileo的Windows 8.1 IoT中就是使用这种基于Ardui ...

  4. Windows 10 IoT Serials 1 - 针对Minnow Board MAX的Windows 10 IoT开发环境搭建

    目前,微软针对Windows IoT计划支持的硬件包括树莓派2,Minnow Board MAX 和Galileo (Gen 1和Gen 2).其中,Galileo (Gen 1和Gen 2)运行的是 ...

  5. Windows 10 IoT Serials 4 - 如何在树莓派上使用Cortana语音助手

    从Windows 10 IoT Core 14986版本开始,微软已经加入Cortana语音助手功能.之前,我们只能使用本地语音识别,需要编写应用程序,下载到设备中才能实现.从现在开始,微软已经从系统 ...

  6. Windows 10 IoT Serials 6 - 如何修改IoTStartupOnBoot.cmd文件

    使用Windows 10 IoT Core系统的朋友应该会比较熟悉IoTStartupOnBoot.cmd文件,该文件是系统启动以后加载的批处理文件,一般会包含应用.服务和后台的启动,比如WinRM. ...

  7. Windows 10 IoT Serials 7 – 如何用树莓派制作家庭流媒体播放器

    Windows 10平台引入了AllJoyn开源软件框架,它提供了一组服务可以创建动态近端网络,让设备可以相互连接实现功能交互.目前,AllJoyn开源软件框架由AllSeen联盟负责管理.AllSe ...

  8. Windows 10 IoT Serials 8 – 如何改变UWP应用的目标平台

    Windows Insider计划直接加速了Windows系统的迭代,缩短了系统发布的周期.就Windows 10 IoT Core而言,迭代的速度和Windows 10 for PC.Windows ...

  9. Windows 10 IoT Serials 9 – 如何利用IoTCoreAudioControlTool改变设备的音频设备

    大家知道,在Windows 10 IoT Core上,如果用户外接了USB声卡.带有麦克风的摄像头之类的硬件,就会有多个音频设备可以用.但是,系统目前并没有提供直接的UI来设置音频的输入或者输出设备. ...

随机推荐

  1. 47 【golang】mysql操作

    新做了个demo,可以简单了解下mysql的操作:https://github.com/helww/mylab/tree/master/go/mysql

  2. ListBox设置背景色无效的问题。 listview类似

    <Style TargetType="{x:Type ListBoxItem}"> <Setter Property="Template"&g ...

  3. struts2各个功能详解(1)----参数自动封装和类型自动转换

    struts2里面的各个功能,现在确实都不清楚,完全属于新学! 通过前面的例子,有时就会疑问,这些jsp中的数据信息是怎么传送给action的?例如: <form action = " ...

  4. Unity 角色移动贴墙行走

    直接贴上代码,旋转角色角度检测碰撞 Vector2 v2Normal = new Vector2(normal.x, normal.y); float fAngle = Vector2.SignedA ...

  5. oracle 查询clob 列时 很慢 , 未解决

    今天查询一张表 ,这张表有一个clob 列 select *  from  tableName :  很卡.. 难道是查询的太多? select * from tableName where rowN ...

  6. mysql8 出现1521错误解决方法

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 ALTER USER 'ro ...

  7. dubbo入门学习 二 RPC框架

    rpc框架解释 谁能用通俗的语言解释一下什么是 RPC 框架? - 远程过程调用协议RPC(Remote Procedure Call Protocol) 首先了解什么叫RPC,为什么要RPC,RPC ...

  8. 构造 this super

    构造方法 我们对封装已经有了基本的了解,接下来我们来看一个新的问题,依然以Person为例,由于Person中的属性都被private了,外界无法直接访问属性,必须对外提供相应的set和get方法.当 ...

  9. 20175316盛茂淞 2018-2019-2 《Java程序设计》第6周学习总结

    20175316盛茂淞 2018-2019-2 <Java程序设计>第6周学习总结 教材学习内容总结 第7章 内部类与异常类 1.使用 try.catch Java中所有信息都会被打包为对 ...

  10. C#遍历SharePoint文档库下所有文档包括文档库中子文件夹下所有文档

    /// <summary> /// 获取取子文件下所有文件 /// </summary> /// <param name="web"></ ...