2011-07-14 47 views
6

我一直在努力让MODI在今天正常工作。下面是在维基百科条目MODI给我试图使用的代码(改编自VB使用MODI 2003使用C#时出现“OCR运行错误”

private void button1_Click(object sender, EventArgs e) 
{ 
    string inputFile = @"C:\testImage.bmp"; 
    textBox1.Text = GetTextFromImage(inputFile); 
} 

private string GetTextFromImage(string fileName) 
{ 
    string output = ""; 
    var doc1 = new MODI.Document(); 
    doc1.Create(fileName); 
    doc1.OCR(MiLANGUAGES.miLANG_ENGLISH, false, false); 

    for (int i = 0; i < doc1.Images.Count; i++) 
    { 
     output += doc1.Images[i].Layout.Text; 
    } 

    doc1.Close(); 
    return output; 
} 

当我执行此,我得到一个错误的OCR()行说以下内容:

System.Runtime.InteropServices.COMException was unhandledMessage=OCR running error Source="" ErrorCode=-959967087 

现在,我抬头一看是错误的代码,发现另一计算器question中,他们发现,他们不能在小的图像运行OCR,但一个问题是1700 X 2338,这应该是足够足够大为原因。

有没有人有什么建议下一步该怎么去?

回答

0

我有类似的问题,当MODI无法OCR位图时,似乎生成了非常无用的错误消息。 我想出了解决的办法是:

1 - 无论是在这两种格式 创建位图System.Drawing.Imaging.PixelFormat.Format24bppRgb 或 System.Drawing.Imaging.PixelFormat.Format16bppRgb555

2 - 清除位图的背景为白色,然后将文本“图片”复制到它的中间,然后执行MODI.Document.Create(......

4

看起来,MODI故障可能是累积的;但通过不同的调查,看起来好像它可能与DPI有关。修改PixelFormat,清除背景,调整原始图像大小,并调整OCROrientImageOCRStraightenImage标志不起作用。

什么工作对我来说是修改的书面Bitmap的DPI为水平和垂直300的Bitmap默认值是96,并在与没有工作的特定图像的工作我注意到DPI设置为300。

-2

你的代码改成这样:

doc1.OCR; 

而让发动机决定自己的语言。

+0

这导致当你有小于10字号charachters脏话错误.. –

0

它在代码上没有问题。刚刚更新Office 2003 Service Pack 3中,在以下链接 https://www.microsoft.com/en-us/download/details.aspx?id=8

这将正常工作....

+0

而不是发布链接作为回答添加一些文字来解释这个答案如何帮助OP在修复当前issue.Thanks –

相关问题