Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Tesseract OCR库-学习字体_C#_Image Processing_Ocr_Tesseract - Fatal编程技术网

C# Tesseract OCR库-学习字体

C# Tesseract OCR库-学习字体,c#,image-processing,ocr,tesseract,C#,Image Processing,Ocr,Tesseract,我使用的是这个OCR的.NET版本,可以在@ 我有它的工作,但这是为了翻译车牌,可悲的是,引擎真的没有准确地翻译一些字母,例如,这里有一个图像,我扫描,以确定字符的问题 结果: 12345B7B9U ABCDEFGHIJKLMNUPIJRSTUVHXYZ 因此,以下字符的翻译不正确: 1,O,Q,W 这似乎并不太糟糕,但是在我的车牌上,结果并不太好: =H4 ODM =乳酸脱氢酶IFW 假测试 =NR4 y2k 正如你可能知道的,我尝试过降低噪音,增加对比度,去除非绝对黑色的像素,但没有真正的

我使用的是这个OCR的.NET版本,可以在@

我有它的工作,但这是为了翻译车牌,可悲的是,引擎真的没有准确地翻译一些字母,例如,这里有一个图像,我扫描,以确定字符的问题

结果:

12345B7B9U ABCDEFGHIJKLMNUPIJRSTUVHXYZ

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

1,O,Q,W

这似乎并不太糟糕,但是在我的车牌上,结果并不太好:

=H4 ODM

=乳酸脱氢酶IFW

假测试

=NR4 y2k

正如你可能知道的,我尝试过降低噪音,增加对比度,去除非绝对黑色的像素,但没有真正的改善

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


所以我一直在思考下一步要做什么,我已经编写了一个快速控制台应用程序,纯粹是为了测试,如果有人想尝试的话。如果有人有任何想法/图形操作/库的想法,我很感激听到他们。

< P>我最近通过TestNET2使用TestSerACT(TestNET2是由Rei My托马斯制作的TestSerACT 2的VS2008 C++包装器,如果我记得很好)。让我试着用我所掌握的关于该工具的一点知识来帮助您:

  • 首先,正如我上面所说的,这个包装器只适用于Tesseract 2.0,而代码是3.00(代码不再托管在Source Forge上)。有固定的贡献者:我看到了3.01版左右的计划。因此,您不会从上一次的增强中受益,包括页面布局分析,当您的车牌不是100%水平时,这可能会有所帮助

  • 我向雷米要了一个版本3的Tessnet2.NET包装器,他现在没有任何计划。所以就像我做的那样,你必须自己做

  • 因此,如果您想获得最新版本的源代码,可以从存储库中下载它们(上介绍了所有内容),如果您有Visual Studio 2008,则可以编译它们,因为它们的源代码在
    VS2008
    子文件夹中包含VS2008解决方案。这个解决方案是由VS2008 C++项目组成的,所以为了在C语言中得到结果,你必须使用.NET P/Access,并使用该项目生成的<代码> TSEDLL</代码>。同样,如果你需要这个,我有一些代码示例可能会让你感兴趣,但是你可能想继续使用C++,并做你自己的新WiFrand项目,例如,
  • 当您完成编译(这方面应该没有什么大问题,但如果您遇到一些问题,请告诉我,我可能也遇到过:-)),您将在输出中获得几个二进制文件,这些二进制文件将允许您进行特定的培训!同样,也有。通过此培训,您可以:

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

    • 指出您在使用培训时将要考虑的歧义(“D”而不是“O”,如您所见,“B”而不是“8”等)

  • 我还发现,如果将图像限制在字母所在的区域(即没有脸,周围没有风景),Tesseract效果会更好:在我的情况下,我只需要识别从网络摄像头拍摄的特定区域的卡片照片,因此我使用图像处理来限制区域。这当然很长,但我的照片来自许多不同的来源,所以我别无选择。如果你能得到的图像是限制到最低限度,那将是伟大的


我希望这对我有任何帮助,不要犹豫,给我你的意见和问题

嗨,我用tesseract做了很多ocr,我也遇到了你的一些问题。如果你问起图像处理工具,我会推荐(也有windows端口,请看谷歌)这是一个很好的去扭曲、去旋转、去除边框和噪声等程序。非常适合在ocr'ing之前跑步

如果你的图片背景颜色(有些)可变,我推荐 我认为这是边缘检测和美白所有非前卫的东西

如果你有复杂的文本,那么可能是有用的。 语法是(在linux上):“ocroscript rec tess”

我的设置是 1.文本清洁器 2.拆开纸张 3.奥克鲁


通过这三个步骤,我几乎可以阅读任何东西。即使是在光线不均匀的情况下拍摄的非常模糊和嘈杂的图像,两列紧凑的文本也非常可读。好的,也许你需要的不是那么多的文字,但是步骤1)和2)可能对你有用。

我目前正在为-构建一个车牌识别引擎,我从tesseract获得了更好的结果,当我将车牌分割成单个字符,并构建一个垂直显示的新图像,周围有空白,如:

W

四,

O

O

M

我认为tesseract面临的一个大问题是,它试图用水平字母和数字拼成单词,而对于字母和数字混在一起的车牌,它将确定数字是字母,反之亦然。输入垂直间隔字符的图像可以将其视为单个字符而不是文本。

一个伟大的阅读

关于车牌的倾斜问题:

问题:当从手持式相机获取OCR输入时 或其他透视不固定的成像设备,如 在扫描仪中,文本行可能会偏离其原始行 方向[13]。根据我们的实验,喂养这样一个 旋转图像到我们的OCR引擎产生的效果非常差 结果。 建议的方法:需要一个倾斜检测过程 在调用识别引擎之前。如果检测到任何倾斜, 执行自动旋转程序以纠正倾斜 在进一步处理文本之前。在识别算法时 成为我们