Tesseract OCR简单的例子

Wil*_*son 26 c# ocr tesseract

嗨,你能不能给我一个简单的例子来测试Tesseract OCR,最好是在C#中.
我试过这里的演示.我下载了英文数据集并在C盘中解压缩.并将代码修改如下:

string path = @"C:\pic\mytext.jpg";
Bitmap image = new Bitmap(path);
Tesseract ocr = new Tesseract();
ocr.SetVariable("tessedit_char_whitelist", "0123456789"); // If digit only
ocr.Init(@"C:\tessdata\", "eng", false); // To use correct tessdata
List<tessnet2.Word> result = ocr.DoOCR(image, Rectangle.Empty);
foreach (tessnet2.Word word in result)
    Console.WriteLine("{0} : {1}", word.Confidence, word.Text);
Run Code Online (Sandbox Code Playgroud)

不幸的是,代码不起作用.程序死于"ocr.Init(..."行.即使使用try-catch,我甚至无法获得异常.

我能够运行vietocr!但这对我来说是一个非常大的项目.我需要一个像上面这样的简单例子.

谢谢

Wil*_*son 19

好.我发现这里的解决方案 tessnet2无法加载 Adam给出的Ans

显然我使用的是错误版本的tessdata.我直观地遵循源页面指令并导致了问题.

它说

快速使用Tessnet2

  1. 在这里下载二进制文件,将程序集Tessnet2.dll的引用添加到您的.NET项目中.

  2. 下载语言数据定义文件在这里,并把它放在tessdata目录.Tessdata目录和您的exe必须位于同一目录中.

下载二进制文件后,当您按照链接下载语言文件时,有许多语言文件.但它们都不是正确的版本.您需要选择所有版本并转到下一页以获取正确的版本(tesseract-2.00.eng)!他们应该将下载二进制链接更新到版本3,或者将版本2语言文件放在第一页上.或者至少大胆提一下这个版本问题是一个大问题!

无论如何我找到了它.感谢大家.


Ado*_*aya 6

在C#中测试Tesseract OCR的简单示例:

    public static string GetText(Bitmap imgsource)
    {
        var ocrtext = string.Empty;
        using (var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default))
        {
            using (var img = PixConverter.ToPix(imgsource))
            {
                using (var page = engine.Process(img))
                {
                    ocrtext = page.GetText();
                }
            }
        }

        return ocrtext;
    }
Run Code Online (Sandbox Code Playgroud)

信息:tessdata文件夹必须存在于存储库中:bin \ Debug \

  • 这里的“PixConverter”是什么?`Tesseract` 包中似乎没有任何具有此类名称的类。 (3认同)
  • 我运行了这段代码,上面写着“无法为平台x86找到库\“ liblept172.dll \”。调试时。错误发生在第一个using语句上。我找到了liblept172.ddl并将其复制到bin文件夹,实际上我复制到许多地方都无济于事。我正在使用NuGet的Tesseract v3.0.2。我找不到tessnet2,因为互联网上的所有链接似乎都已断开。 (2认同)

Dop*_*ger 6

我按照这些说明使其正常工作。

  • 下载示例代码 超立方体示例代码

  • 将其解压到新位置

  • 打开 ~\tesseract-samples-master\src\Tesseract.Samples.sln (我使用的是 Visual Studio 2017)

  • 为该项目安装 Tesseract NuGet 包(或者像我必须的那样卸载/重新安装) NuGet 超立方体

  • 取消注释 Tesseract.Samples.Program.cs 中最后两行有意义的行: Console.Write("Press any key to continue . . . "); Console.ReadKey(true);

  • 运行(按 F5)

  • 你应该得到这个 Windows 控制台输出 在此输入图像描述


Rac*_*hel 1

尝试将该行更新为:

ocr.Init(@"C:\", "eng", false); // 这里的路径应该是tessdata的父文件夹