【问题标题】:Strange Error When Using Tesseract in VB.net在 VB.net 中使用 Tesseract 时出现奇怪的错误
【发布时间】:2011-04-10 01:40:49
【问题描述】:

我有当前代码:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim Bitmap As New Bitmap("image.png")
    Dim ocr As tessnet2.Tesseract = New tessnet2.Tesseract()
    ocr.SetVariable("tessedit_char_whitelit", "0123456789")
    ocr.Init("c:\", "fra", False)
    Dim result As List(Of tessnet2.Word) = ocr.DoOCR(Bitmap, Rectangle.Empty)
    For Each word As tessnet2.Word In result
        RichTextBox1.Text &= word.Text & "(" & word.Confidence & ") "
    Next
End Sub

我在表单上只有一个普通的 RichTextBox 和一个按钮。我在调试目录中还有一个名为“image.png”的图像。

每次我运行它时,程序都会关闭。我做了一步,突然出现一个文件定位器,要求输入“tessnet2.cpp”

我有一个对 dll 的引用。我也不知道 ocr.Init(...) 行是干什么用的。

任何帮助都会很好!

【问题讨论】:

  • 这一行 ocr.SetVariable("tessedit_char_whitelit", "0123456789") 应该是 ocr.SetVariable("tessedit_char_whitelist", "0123456789")
  • 您是否以管理员权限运行?
  • ocr.init() 告诉 dll 语言文件在哪里。看起来你在使用法语?
  • 好的,我在哪里可以找到通常存储的语言?

标签: vb.net ocr tesseract


【解决方案1】:

首先,非常感谢您提供的简单但有效的代码。经过 3 天的搜索,我找到了 VB(不是 VC)的代码。当然,我立即复制并粘贴了它,我也遇到了同样的问题。那么:

  1. 我卸载了 Tesseract 3.xx
  2. 检查了 Tesseract 3.xx 的 RegEdit 并删除了它们(任何想要执行此步骤的人;请注意不要破坏任何东西)
  3. 将 tessdll.dll 复制到同一文件夹中。

  4. 主要问题是: ocr.Init("c:\", "fra", False) 应该是这样的: ocr.Init("c:\tessdata", "fra", False) 其实我的真话是: ocr.Init(Application.StartupPath & "\tessdata", "eng", False)

  5. 注意到在文件夹“...\Visual Studio 2008\Projects....”中我仍然遇到同样的问题,然后将所有文件夹复制到“D:\Test”文件夹中(当然在这个文件夹我还有一个文件夹:tessdata)

成功了!!!

希望它对您或任何像我一样搜索此问题的人有所帮助:)

内斯

【讨论】:

  • 哇,谢谢!直到现在我才能够让它工作!
【解决方案2】:

如果您将代码放在 Try/Catch 块中,您应该能够在不关闭程序的情况下找出错误所在。您还可以调试程序而不是运行它,而不是程序崩溃,调试器会准确地显示错误发生的位置。

【讨论】:

  • 对,使用调试器。这就是它的用途。不要用try/catch 块不必要地乱扔你的源代码。您只会忘记将它们取出,从而隐藏真正的错误。
  • 我正在调试。什么都没有扔。它刚刚关闭。
【解决方案3】:

Init 方法的第一个参数指定 tessdata 文件夹的位置。如果你有它在默认位置,与 Tesseract 二进制相同,它应该为 null,或者在 VB.NET 中为 Nothing。

【讨论】:

    猜你喜欢
    • 2020-08-30
    • 2013-05-05
    • 1970-01-01
    • 2012-05-05
    • 2011-06-16
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 2011-01-08
    相关资源
    最近更新 更多