none
c# 调用tesseract报错,请问如何解决? RRS feed

  • 问题

  • 我参考这篇文档(https://blog.csdn.net/HorseRoll/article/details/83310677),用c#调用tesseract进行ocr.

    我用nuget 安装了Tesseract,字库也添加了。编译没有报错。

    代码如下:

    private void Button1_Click(object sender, EventArgs e)
            {
                TesseractEngine ocr;
                ocr = new TesseractEngine("./tessdata", "eng", EngineMode.TesseractAndCube);
                Bitmap bit = new Bitmap(Image.FromFile(@"d://test//chinese1.png"));
                //bit = PreprocesImage(bit);//进行图像处理,如果识别率低可试试
                Page page = ocr.Process(bit);
                string str = page.GetText();//识别后的内容page.Dispose();
                textBox1.Text = str;

            }

    但是运行时报错如下,请问怎么解决?

    System.AccessViolationException

      HResult=0x80004003
      Message=尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
      Source=<无法计算异常源>
      StackTrace:
    <无法计算异常堆栈跟踪>


    2020年1月3日 1:31

答案

  • Hi BillQu01,

    我重现你的问题,但是我没有找到相应的解决方案。

    我找到了一种替代的解决方案,你可以结合以下两个链接来使用新的方法来进行图像识别。

    .net Tesseract 图片识别

    tesseract-ocr-dotnet

    第一个链接最后面讲解了如何使用tesseract.dll,第二个链接最下面有一个具体的例子。

    希望会帮到你。

    Best Regards,

    Jack


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    2020年1月3日 9:02
    版主