无法使用tessnet2和Tesseract-OCR从图像中读取文本

时间:2017-08-15 08:21:54

标签: c# .net visual-studio-2015 ocr tesseract

我写了下面的.Net代码来读取图像中的文字:

用于编写代码的平台:    Windows 10,Visual Studio 2015,tesseract-ocr-setup-4.00.00dev和tessnet2

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
using tessnet2;
 using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.IO;

namespace ConsoleApplication2
 {
       class Program
    {
    static void Main(string[] args)
    {
        var image = new Bitmap(@"D:\Python\download.jpg");
        var ocr = new Tesseract();
        ocr.Init(@"C:\Program Files (x86)\Tesseract-OCR\tessdata", "eng",false);
        var result = ocr.DoOCR(image, Rectangle.Empty);
        foreach (tessnet2.Word word in result)
        {
            Console.WriteLine(word.Text);
            File.AppendAllText(@"D:\Python\writefile.txt",word.Text);

        }
        Console.ReadLine();
    }
   }
}

我都试过“Any CPU”和X86的CPU。尝试从Project Properties中更改Target框架版本。

但是,我收到了以下错误:

An unhandled exception of type 'System.IO.FileLoadException' occurred in 
mscorlib.dll

Additional information: Mixed mode assembly is built against version 
'v2.0.50727' 
of the runtime and cannot be loaded in the 4.0 runtime without additional 
  configuration information.

编辑: 刚刚在我的app.config中写了这个以删除错误,现在看起来如下所示:

  <?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true"> 

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
 </startup>

通过参考:https://www.nuget.org/packages/NuGet.Tessnet2/

安装NuGet

我无法阅读图片。我从其中一个包含文字的Google Image下载的图片。

HEre是我得到的信息:

enter image description here

当我检查路径C:\ Program Files(x86)\ Tesseract-OCR \ tessdata

这就是它的样子:

enter image description here

我做错了什么?如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

问题已得到解决:从此处下载LANG包:https://github.com/tesseract-ocr/langdata

之前遗漏了哪些内容.Tessnet2最重要的工作是获取语言包,在这里(https://github.com/tesseract-ocr/langdata)获取所需的语言。对于样本,我使用英语。

下载语言并将其解压缩到“.. \ Tesseract-OCR \ tessdata”文件夹。

注意:默认情况下,安装过程中语言包不会出现在tessdata中。

这是我修改后的代码版本:

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using tessnet2;
 using System.Drawing;
 using System.Drawing.Drawing2D;
 using System.Drawing.Imaging;
 using System.IO;

 namespace ConsoleApplication2
 {
class Program
{
    static void Main(string[] args)
    {
        var image = new Bitmap(@"D:\Python\download.jpg");
        tessnet2.Tesseract ocr = new tessnet2.Tesseract();
        ocr.Init(@"C:\Program Files (x86)\Tesseract-OCR\tessdata", "eng",false);
        List<tessnet2.Word> result = ocr.DoOCR(image, Rectangle.Empty);
        foreach (tessnet2.Word word in result)
        {
            Console.WriteLine("{0} : {1}",word.Confidence,word.Text);

        }

        Console.Read();
    }

}
}

干杯!!!