【发布时间】:2017-07-11 15:34:42
【问题描述】:
我正在编写一个使用 Tesseract 从图像中提取文本的程序。该程序应该从一个目录中获取所有图像,并将它们一一放入图片框中,然后从中提取文本。我已经从这个链接下载了一个经过英语训练的数据,并将其放入 Debug 文件夹 https://github.com/tesseract-ocr/tessdata/blob/master/eng.traineddata
例外是:
这是我的代码:调用的目标已引发异常。
并且 catch 中指示的内部异常是:无法找到平台 x86 的库“liblept172.dll”。
private void button1_Click(object sender, EventArgs e)
{
Image image;
string[] images = Directory.GetFiles("E:\\Omar Project\\New", "*.png");
for (int i = 0; i < images.Length;i++)
{
image = Image.FromFile(images[i]);
pictureBox1.Image = image;
//ocr = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
using (var engine = new TesseractEngine("E:\\Omar Project\\Extracting Text From Image Using Microsoft Office\\Extracting Text From Image Using Microsoft Office\\bin\\Debug\\eng.traineddata", "eng", EngineMode.Default))
{
using(var img=Pix.LoadFromFile(images[i]))
{
using(var page=engine.Process(img))
{
richTextBox1.Text += page.GetText();
}
}
}
}
}
【问题讨论】:
-
而例外是......?
-
@JonSkeet 它已清楚地显示在标题中。
-
这只是通过反射调用方法提供的包装器。潜在的异常也应该存在。如果您发布完整的堆栈跟踪,包括嵌套异常,帮助您将变得相当简单。 (仅包含异常的消息,而没有任何指示位置、堆栈跟踪或嵌套异常的信息很少。)
-
@JonSkeet 异常发生在这一行: using (var engine = new TesseractEngine("E:\\Omar Project\\Extracting Text From Image Using Microsoft Office\\Extracting Text From Image Using Microsoft Office \\bin\\Debug\\eng.traineddata", "English", EngineMode.Default))
-
所以这应该是问题所在,以及完整的异常详细信息,包括嵌套异常。