“OCR running error” when using MODI 2003 with C#

牧云@^-^@ 提交于 2019-12-07 03:40:17

问题


I've been struggling to get MODI to work properly at all today. Here's the code I'm attempting to use (adapted from the VB given at the Wikipedia entry for MODI.

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;
}

When I execute this, I get an error on the OCR() line saying the following:

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

Now, I looked up that error code and found another stackoverflow question in which they found that they couldn't run the OCR on small images, but the one in question is 1700x2338, which should be plenty large enough for the cause.

Does anyone have any advice on where to go next with this?


回答1:


It appears that the MODI failures may be cumulative; however through varying investigation it looks as though it may be tied to the DPI. Modifying the PixelFormat, clearing the background, adjusting the raw image size, and adjusting the OCROrientImage and OCRStraightenImage flags had no effect.

What worked for me was modifying the DPI of the written Bitmap for both horizontal and vertical to 300. The default for a Bitmap is 96 and in working with a specific image that did work I noted the DPI was set at 300.




回答2:


I had similar problems and the terribly unhelpful error message seems to be generated when MODI is unable to OCR the bitmap. The solution I came up with is:

1 - Create your bitmap in either of these two formats System.Drawing.Imaging.PixelFormat.Format24bppRgb or System.Drawing.Imaging.PixelFormat.Format16bppRgb555

2 - Clear the background of the bitmap to white and then copy your text "picture" to the middle of it and then do the MODI.Document.Create (......




回答3:


Its not a problem on code. Just update office 2003 service pack 3. Here is the link https://www.microsoft.com/en-us/download/details.aspx?id=8

It will work fine....




回答4:


Change your code to this:

doc1.OCR;

And let the engine decide its own language.



来源:https://stackoverflow.com/questions/6699740/ocr-running-error-when-using-modi-2003-with-c-sharp

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!