jjzjj

c# - Tesseract OCR Library - 学习字体

coder 2024-05-20 原文

好吧,我正在使用此 OCR 的编译 .NET 版本,可以在@http://www.pixel-technology.com/freeware/tessnet2/ 找到它。

我有它的工作,但是它的目的是翻译车牌,遗憾的是引擎确实没有准确翻译一些字母,例如这是我扫描的图像以确定字符问题

结果:

12345B7B9U ABCDEFGHIJKLMNUPIJRSTUVHXYZ

因此以下字符翻译不正确:

1、O、Q、W

这看起来还不错,但是在我的车牌上,结果不是很好:

= H4 ODM

= LDH IFW

假测试

= NR4 y2k

正如您可能会说的那样,我已经尝试了降噪、增加对比度和移除非绝对黑色的像素,但没有真正的改进。

显然你可以“学习”引擎的新字体,但我想我需要为 .NET 重新编译库,而且这似乎是在我没有的 Linux 操作系统上执行的。

http://www.scribd.com/doc/16747664/Tesseract-Trainingfor-Khmer-LanguageFor-Posting

所以我不知道接下来要尝试什么,我已经编写了一个快速控制台应用程序,纯粹用于测试目的,如果有人想尝试的话。如果有人有任何想法/图形处理/图书馆想法,我将不胜感激。

最佳答案

我最近通过 Tessnet2 使用了 Tesseract(如果我没记错的话,Tessnet2 是 Rémy Thomas 制作的围绕 Tesseract 2.0 的 VS2008 C++ 包装器)。让我试着用我对这个工具的一点了解来帮助你:

  • 1,正如我上面所说,这个包装器仅适用于 Tesseract 2.0,并且 newest Tesseract version on Google Code是 3.00(代码不再托管在 Source Forge 上)。有固定的贡献者:我看到计划发布 3.01 左右的版本。因此,您不会从最后的增强功能中受益,包括页面布局分析,这在您的牌照不是 100% 水平时可能会有所帮助。

  • 我向 Rémy 询问了第 3 版的 Tessnet2 .NET 包装器,他目前没有任何计划。所以像我一样,你必须自己做!

  • 所以如果你想获得最新版本的源代码,你可以从Subversion下载它们。存储库(所有内容都在 dedicated site page 中描述),如果您有 Visual Studio 2008,您将能够编译它们,因为它们的源代码在 vs2008 子文件夹中包含一个 VS2008 解决方案。此解决方案由 VS2008 C++ 项目组成,因此要在 C# 中获得结果,您必须将 .NET P/Invoke 与项目构建的 tessDll 结合使用。同样,如果您需要这个,我有您可能感兴趣的代码示例,但您可能希望继续使用 C++ 并创建您自己的新 WinForm 项目,例如!

  • 当你完成编译时(应该不会有什么大问题,但如果你遇到了一些,请告诉我,我可能也遇到过他们:-)),你将在输出几个二进制文件会让你做特定的训练!同样,有 a page specially dedicated to Tesseract 3 training .得益于此培训,您可以:

    • 限制您的字符集,这将自动删除标点符号(例如,'/-\' 而不是 'A')

    • 指出您检测到的歧义(如您所见,用“D”代替“O”,用“B”代替“8”等),您在使用训练时会考虑这些歧义。

  • 我还看到,如果将图像限制在字母所在的区域(即没有人脸,周围没有风景),Tesseract 结果会更好:在我的例子中,我只需要识别特定的区域从网络摄像头拍摄的卡片照片,所以我使用图像处理来限制区域。当然,那很长,但我的图像来自许多不同的来源,所以我别无选择。如果你能得到限制到最低限度的图像,那就太好了!

希望对您有所帮助,请随时给我您的意见和问题!

关于c# - Tesseract OCR Library - 学习字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4908919/

有关c# - Tesseract OCR Library - 学习字体的更多相关文章

  1. c# - 如何在 ruby​​ 中调用 C# dll? - 2

    如何在ruby​​中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL

  2. C# 到 Ruby sha1 base64 编码 - 2

    我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha

  3. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  4. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  5. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  6. ruby-on-rails - 在 heroku 的 .fonts 文件夹中包含自定义字体,似乎无法识别它们 - 2

    Heroku支持人员告诉我,为了在我的Web应用程序中使用自定义字体(未安装在系统中,您可以在bash控制台中使用fc-list查看已安装的字体)我必须部署一个包含所有字体的.fonts文件夹里面的字体。问题是我不知道该怎么做。我的意思是,我不知道文件名是否必须遵循heroku的任何特殊模式,或者我必须在我的代码中做一些事情来考虑这种字体,或者如果我将它包含在文件夹中它是自动的......事实是,我尝试以不同的方式更改字体的文件名,但根本没有使用该字体。为了提供更多详细信息,我们使用字体的过程是将PDF转换为图像,更具体地说,使用rghostgem。并且最终图像根本不使用自定义字体。在

  7. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  8. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  9. ruby - 我如何学习 ruby​​ 的正则表达式? - 2

    如何学习ruby​​的正则表达式?(对于假人) 最佳答案 http://www.rubular.com/在Ruby中使用正则表达式时是一个很棒的工具,因为它可以立即将结果可视化。 关于ruby-我如何学习ruby​​的正则表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1881231/

  10. c# - C# 中的 Flatten Ruby 方法 - 2

    我如何做Ruby方法"Flatten"RubyMethod在C#中。此方法将锯齿状数组展平为一维数组。例如:s=[1,2,3]#=>[1,2,3]t=[4,5,6,[7,8]]#=>[4,5,6,[7,8]]a=[s,t,9,10]#=>[[1,2,3],[4,5,6,[7,8]],9,10]a.flatten#=>[1,2,3,4,5,6,7,8,9,10 最佳答案 递归解决方案:IEnumerableFlatten(IEnumerablearray){foreach(variteminarray){if(itemisIEnume

随机推荐