我有当前的代码:
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(...)行的用途。
任何帮助都会很好!
答案 0 :(得分:1)
如果您将代码放在Try / Catch块中,您应该能够在程序关闭的情况下找出错误。您也可以调试程序而不是运行它,而不是程序崩溃,调试器将显示错误发生的确切位置。
答案 1 :(得分:1)
首先,非常感谢您提供的简单而有效的代码。经过3天的搜索,我发现这个代码用于VB(而不是VC)。当然我立即复制并粘贴它,同样的问题也出现了。然后:
将tessdll.dll复制到同一文件夹中。
主要问题是:
ocr.Init("c:\", "fra", False)
它应该是这样的:
ocr.Init("c:\tessdata", "fra", False)
实际上我的真实路线是:
ocr.Init(Application.StartupPath & "\tessdata", "eng", False)
注意到文件夹“... \ Visual Studio 2008 \ Projects ....”我仍然遇到了同样的问题,然后将所有文件夹复制到“D:\ Test”文件夹中(当然在此文件夹我还有一个文件夹:tessdata)
它奏效了!!!
希望对您或任何像我这样搜索此问题的人有所帮助:)
Nes的
答案 2 :(得分:0)
Init方法的第一个参数指定tessdata文件夹的位置。如果你在默认位置(与Tesseract二进制文件相同),它应该为null,或者在VB.NET中为Nothing。