Ошибка запуска OCR при использовании MODI 2003 с C#

Сегодня я изо всех сил пытался заставить MODI работать должным образом. Вот код, который я пытаюсь использовать (адаптирован из VB, приведенного в статье Википедии для 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;
}

Когда я выполняю это, я получаю сообщение об ошибке в строке OCR(), говорящее следующее:

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

Теперь я просмотрел этот код ошибки и нашел другой вопрос, в котором они обнаружили, что не могут не запускайте OCR на маленьких изображениях, но речь идет о 1700x2338, что должно быть достаточно большим для этой причины.

Есть ли у кого-нибудь какие-либо советы о том, куда идти дальше с этим?


person Whit Waldo    schedule 14.07.2011    source источник


Ответы (4)


Похоже, что отказы MODI могут накапливаться; однако, в ходе различных исследований, похоже, что это может быть связано с DPI. Изменение PixelFormat, очистка фона, настройка размера необработанного изображения и настройка флагов OCROrientImage и OCRStraightenImage не дали результата.

Что сработало для меня, так это изменение DPI написанного Bitmap как по горизонтали, так и по вертикали до 300. Значение по умолчанию для Bitmap — 96, и при работе с конкретным изображением, которое работало, я заметил, что DPI было установлено на 300.

person Aaron McIver    schedule 19.12.2011

У меня были похожие проблемы, и кажется, что появляется ужасно бесполезное сообщение об ошибке, когда MODI не может распознать растровое изображение. Решение, которое я придумал, это:

1. Создайте растровое изображение в любом из этих двух форматов: System.Drawing.Imaging.PixelFormat.Format24bppRgb или System.Drawing.Imaging.PixelFormat.Format16bppRgb555.

2 - Очистите фон растрового изображения до белого, а затем скопируйте текстовое «изображение» в его середину, а затем выполните MODI.Document.Create (......

person RichardB    schedule 20.07.2011

Это не проблема с кодом. Просто обновите пакет обновления 3 для Office 2003. Вот ссылка https://www.microsoft.com/en-us/download/details.aspx?id=8

Будет нормально работать....

person Aakarshan Maharjan    schedule 14.02.2017
comment
Вместо того, чтобы публиковать ссылки в качестве ответа, добавьте текст для объяснения того, как этот ответ помогает ОП в устранении текущей проблемы. Спасибо. - person ρяσѕρєя K; 14.02.2017

Измените свой код на это:

doc1.OCR;

И пусть движок выбирает свой собственный язык.

person Cylian    schedule 03.06.2012
comment
это вызывает ошибку языка, когда у вас есть символы с размером шрифта меньше 10.. - person Berker Yüceer; 11.06.2012