TL;DR:
是否有人知道如何在服务器端的Microsoft.Windows.Ocr WindowsPreview.Media.Ocr.dll 应用程序(如MV4 Web )上引用 (/ )程序集,并利用该程序集中的OCR功能将照片图像作为输入并从中提取文本内容?如果是,请在回答中提供详细说明。
质问细节(以及我迄今尝试过的)
我正在构建一个web应用程序,它接收上传到服务器的图像(通过文件上传UI屏幕),然后使用OCR读取文本,并在下一页显示文本,就在上传的图像旁边。
由于大多数商业OCR库都要花费一定的成本(上次我查的时候超过1,300美元),我想我可以尝试使用Microsoft OCR Library Microsoft.Windows.Ocr,它是免费的,似乎是非常简单,而且使用起来很简单。
因此,我尝试将Microsoft.Windows.Ocr Nuget包安装到我的ASP.Net MVC4 Web项目中,结果成功了。

之后,我查看了我的Microsoft.Windows.Ocr.dll Web项目引用,令我惊讶的是,我没有找到对MVC4程序集的引用。

因此,我试图在WindowsPreview.Media.Ocr.dll文件夹中浏览到该程序集,从而添加对Microsoft.Windows.Ocr.dll程序集的x86版本的引用,并从\lib\win81\x86文件夹中选择\packages。
注释:程序集的名称是WindowsPreview.Media.Ocr.dll,而不是Microsoft.Windows.Ocr.dll,不知道为什么!

当我这样做并单击OK时,我得到了下面的错误消息。
---------------------------
Microsoft Visual Studio
---------------------------
A reference to
'D:\TestProjects\packages\Microsoft.Windows.Ocr.1.0.0\lib\win81\x86\
WindowsPreview.Media.Ocr.dll' could not be added. Please make sure
that the file is accessible, and that it is a valid assembly
or COM component.
---------------------------
OK
---------------------------

然后我从Nuget页面中发现,“支持的平台”仅为Windows 8、Windows 8.1、Windows8.1(仅限Windows应用程序)。

但是,肯定有一种方法可以在应用程序的服务器端使用这个ASP.Net OCR?
是否有人知道在服务器端的Microsoft.Windows.Ocr (/ WindowsPreview.Media.Ocr.dll )程序集(如MV4 Web )上引用MV4(/WindowsPreview.Media.Ocr.dll)程序集的方法,并利用该程序集中的OCR功能将照片图像作为输入并从中提取文本内容?**如果是,请在回答中提供详细说明。
任何“黑客”和/或示例代码都将不胜感激!!
谢谢你!!
发布于 2016-06-15 17:29:40
如果使用的是Visual 2015和Windows 10,则
Microsoft.Windows.Ocr
已被移动到通用Windows平台。它可作为
Windows.Media.Ocr
因此,您需要通过启用Windows 10工具来升级VS 2015。
我做了以下操作,并在Web中添加了Windows.Media.Ocr作为引用。

注意:以下内容只适用于VS 2015和windows 10,也应该针对通用Windows平台(UWP)进行更新。检查这是否有一个OCR样本。
希望这能有所帮助。更新--它被导入到我的引用中,但是未能加载。希望它能为人们提供一些开始。谢谢!
发布于 2014-12-01 00:48:57
您可以跳到下面的更新2以获得有效的解决方案.
它将抛出一个类型的加载异常。尽管如此,我张贴是因为我试图做同样的事情,但不能让项目运行。以下是一些关于如何将winrt导入非windows应用程序项目的基本说明。
http://weblogs.thinktecture.com/cnagel/2012/10/calling-winrt-from-windows-desktop-apps.html
也不要尝试引用dll,而是引用winmd文件。
下面是一个引用ocr库的示例控制台应用程序,但是当您运行该解决方案时,它会抛出加载异常类型。(https://github.com/Xandroid4Net/MicrsoftOcrConsoleApp)它应该很容易地从控制台应用程序移植到和asp.net应用程序。我不知道如何修复类型加载异常,也许您可以得到比我更远的。如果您找到了解决方案,请张贴。
更新1(2014年1月12日)
进一步挖掘显示了下面的程序集绑定错误。知道如何为进程设置包Id吗?
档案: WindowsPreview.Media.Ocr!WindowsPreview.Media.Ocr.OcrEngine,Version=255.255.255.255,Culture=neutral,PublicKeyToken=null,ContentType=WindowsRuntime.htm
文件内容:
*装配式绑定日志条目(12/1/2014 @ 11:48:01 PM) *
手术失败了。绑定结果: hr = 0x80073d54。该进程没有包标识。
程序集管理器从:在可执行的C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll下运行的C:\Users\Wesley\Documents\Dev\ConsoleApplication2\Program.exe加载--详细的错误日志如下所示。
开始: Windows运行时类型绑定。END :流程没有包标识。(HRESULT例外: 0x80073D54)
更新2 (12/03/2014)
这是一个令人讨厌的解决办法,但它在我的Windows8.1 Surface 3平板电脑上有效。WebOcr是一个webforms,但是它可以很容易地为MVC重构。
1)下载https://github.com/Xandroid4Net/CommandLineOcr。这是psuedo商店的应用程序。
2)构建并运行应用程序。它似乎什么也做不了。没关系,它将用我们需要的新键更新注册表。
3)下载https://github.com/Xandroid4Net/WebOcr。
4)在Webocr项目中找到OcrCommandLineCaller.cs。
5)在HKEY_CURRENT_USER\Software\Classes\ActivatableClasses\Package\Some_Sort_Of_Guid_For_Your_APP\Server\App.App....\AppUserModelId定位注册表项
如果您需要更多的帮助来查找注册表项,请参考这个问题。IApplicationActivationManager::ActivateApplication in C#?
6)用注册表项中的奇怪guid应用程序标识符更新OcrCommandLineCaller.cs中的guid调用。
7)在default.aspx.cs中,将saveAsPath替换为机器上的路径。在windows商店应用程序中,有一个由Windows.Storage.ApplicationData.Current.LocalFolder.表示的静态路径为了简单起见,这就是我保存图像的途径。
8)根据你的心愿修改代码,如果你有任何问题,请告诉我。
这是一个非常粗糙和令人讨厌的解决方案,但它确实有效。
发布于 2015-03-25 20:04:11
几年来,我一直使用MODI打包的MODI解决方案,并且对它非常满意(如果您购买Office,它是免费的)。当它被终止时,我感到相当失望。我试过了..。我真的很想喜欢它,但是发现它速度慢而且不准确,因为荷兰机器类型的质量很好.和你一样,我也没有理由花200美元在本质上是一个业余项目。
经过一次绝望的搜索,这里有人指点我TOCR (一种Transym产品)。不久之后,顿悟出现了。-)我想在这一点上我需要说的是,我在任何方面都不属于Transym,是的,我付出了全部的代价. 60磅!(不打错.60英镑),其中包括增值税,计算为113欧元。
它本质上是为集成商设计的(它包括一个扫描/查看器/OCR应用程序,但这仅仅是一个演示--如果你购买了许可证,你就会得到它的源代码)。API已经过时了(就OCR引擎而言,它是一个相当成熟的代码库),但它速度快、稳定,而且出乎意料地准确。不像DokuStar引擎或其他深奥的引擎那样精确,但对于我的应用程序(荷兰和ENglish机器类型),它拥有自己的各种引擎,这些引擎的价格远远超过1000美元。荷兰机器类型的识别精度很好(它不会手写)。在我看来,从物有所值的角度来看,这简直是太好了。至于API:我为它编写了一个基本的.NET包装器,以满足我的需要--这是在几个晚上就完成的。
他们的网站(http://www.transym.com/index.htm)上有一个实用版。不,如果你这么做,我什么钱也得不到;-)
https://stackoverflow.com/questions/27198656
复制相似问题