2011-07-14 67 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 –

相關問題