有谁知道用于Windows Phone的OCRing 7段显示的任何API?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有谁知道用于Windows Phone的OCRing 7段显示的任何API?相关的知识,希望对你有一定的参考价值。

我正在尝试开发Windows Phone 8.1应用程序,但我需要识别来自不同显示器的一些数字。

我跟着这个例子:

http://bsubramanyamraju.blogspot.com/2014/08/windowsphone-81-optical-character.html

那是使用Microsoft OCR运行时库:

https://www.nuget.org/packages/Microsoft.Windows.Ocr/

但是,当我试图识别那些照片时,它不起作用。即使我发现这个网站:

https://www.unix-ag.uni-kl.de/~auerswal/ssocr/

有人有推荐吗?或者有人知道与之相关的任何代码吗?

感谢您的宝贵知识。

答案

我希望你的问题的答案是“当然,这里是”与黑盒进程的链接 - 任何OCR工具,但涉及到几个方面,最好单独考虑。

首先,在您考虑任何OCR之前,有一些关于图像预处理的工作。您的图像样本非常不同,包括各种问题。

SAMPLE 1具有低对比度,因此当它被二值化为黑白层时,大多数OCR将在某个阶段内部执行,没有要处理的字符。二值化后看起来像这样:

有关图像预处理的更多详细信息,请参阅此OCR博客文章:http://www.ocr-it.com/guide-to-better-mobile-images-from-cell-phone-camera-for-higher-quality-ocr

其次,图像在标题中没有dpi信息,一些OCR技术使用它来确定图像的适当缩放。如果没有标题信息,某些OCR程序可能会设置一些默认dpi,这可能与您的图像匹配,也可能不匹配,从而影响OCR结果。这并不重要,但如果可以在创建图片时实施,则首选。

SAMPLE 2具有足够的对比度,自适应公证返回清晰的图像。它还缺少标题中的dpi分辨率值。

SAMPLE 3具有非常清晰的对比度,但它在标题中也没有分辨率dpi。

一旦您拥有针对OCR处理进行了优化的图像,下一步就是查看OCR技术。

我没有测试过你提到的,假设你有正确的实现,但没有成功。我测试了过去使用过的其他OCR工具。

一般来说,我不知道7段OCR。但是,我能够为这项专门任务调整其他通用OCR。我尝试“开箱即用”或默认设置的每个OCR都无法处理此识别。这是合乎逻辑的,也是预期的。为什么?因为编写大多数通用OCR以识别每个字符的不可分离的像素模式。这与用于将单词分成单独字符的“字符可分性”原则有关。换句话说,内部OCR算法寻找构成每个字符的连接笔画。更强大的商业OCR允许像素模式中的一些中断,但是它们预期是最小的,例如打印或扫描中的缺陷,这可能导致丢失字符片段。

7段显示本质上会在每个字符中有多个中断,与字符可分性原则相冲突。

更强大的OCR技术具有a)对像素图案中断的更大容忍度和/或b)具有处理这些情况的特殊设置。

我将使用OCR-IT基于Web的OCR API平台进行进一步测试,这是我所熟知的。我在OCR功能方面担任开发人员。我也在我自己的iosandroid应用程序中广泛使用它。 OCR-IT API基于强大的商业OCR引擎,因此它具有良好的字符缺陷容忍度以及在这种情况下可以提供的一些控制。

样本3.这是最容易处理的样本,所以我先测试了它。使用OCR-IT API,并使用默认设置发出请求,请求输出为TXT格式,我得到以下内容:

似乎OCR是a)将字符分成两个单独的行,并且b)尝试尽可能接近有效字符读取生成的图案。

基于此快速分析,对OCR设置进行一次调整会产生以下识别:

在OCR结果中产生重大差异的设置是从默认打印类型切换到使用“DotMatrix”,它位于整个OCR-IT API设置XML的中间:

<Job> 
 <InputURL>http://i.stack.imgur.com/wOtFx.jpg</InputURL>
  <CleanupSettings>
      <Deskew>false</Deskew>
      <RemoveGarbage>false</RemoveGarbage>
      <RemoveTexture>false</RemoveTexture>
      <RotationType>NoRotation</RotationType>
  </CleanupSettings>
  <OCRSettings>
      <PrintType>DotMatrix</PrintType>
      <OCRLanguage>English</OCRLanguage>
      <SpeedOCR>false</SpeedOCR>
      <AnalysisMode>MixedDocument</AnalysisMode>
      <LookForBarcodes>false</LookForBarcodes>
  </OCRSettings>
  <OutputSettings>
      <ExportFormat>Text</ExportFormat>
  </OutputSettings>
</Job>
另一答案

尽管如此,自从Ilya的回答已经有一段时间了,感谢他的建议和其他人,特别是这个:

Seven Segment Optical Character Recognition

我能够在C#中创建自己的类:

https://github.com/FANMixco/7-segment-ocr-reader/blob/master/OCR/SevenSegmentOCR.cs

随意使用并改进它。

以上是关于有谁知道用于Windows Phone的OCRing 7段显示的任何API?的主要内容,如果未能解决你的问题,请参考以下文章

Windows Phone 8 按钮文本动画 - C# / XAML

谁知道linux操作系统和 windows 的优点 缺点 区别 ??

使用 Windows Phone 8 从 FM 广播中检索电台信息

适用于 Windows Phone 的 OCRing 7 段显示器的任何 API?

Android Froyo Phone 应用程序源

谁知道如何查看Windows下正在运行的程序堆栈,Linux可以用gdb,windows下该用啥