C# - Невозможно получить доступ к файлу, который уже используется - Iron OCRC#

Место общения программистов C#
Ответить
Anonymous
 C# - Невозможно получить доступ к файлу, который уже используется - Iron OCR

Сообщение Anonymous »

Я использую «Iron OCR», что-то вроде «Tesseract», для обнаружения и сканирования определенного текста на скриншотах.
Теперь у меня возникла следующая ошибка. Каждый раз, когда Iron OCR используется для сканирования изображения на наличие текста, он пытается получить доступ к файлу журнала Iron OCR, который каким-то образом все еще использовался процессом раньше. Поэтому каждый раз, когда я получаю сообщение об ошибке, он не может получить доступ к файлу журнала, поскольку он уже используется. Тем не менее сканирование по-прежнему работает, и я получаю действительный результат, хотя из-за этой ошибки возникает исключение.
Моя программа работает следующим образом:
  • он делает снимки определенных областей моего экрана.
  • он анализирует это изображение с помощью Iron OCR и ищет текст.< /li>
    этот процесс повторяется бесконечно.
У меня есть следующий код:

Код: Выделить всё

//------------------------- # Capture Screenshot of specific Area # -------------------------\\

Rectangle bounds3;
Rect rect3 = new Rect();
bounds3 = new Rectangle(rect3.Left + 198, rect3.Top + 36, rect3.Right + 75 - rect3.Left - 10, rect3.Bottom + 30 - rect3.Top - 10);
CursorPosition = new Point(Cursor.Position.X - rect.Left, Cursor.Position.Y - rect.Top);

Bitmap result3 = new Bitmap(40, 14);

using (Graphics g = Graphics.FromImage(result3))
{
g.CopyFromScreen(new Point(bounds3.Left, bounds3.Top), Point.Empty, bounds3.Size);
}

//------------------------- # Analyze Image for Text # -------------------------\\

var Ocr = new IronTesseract();
using (var Input = new OcrInput(result))
{
Input.Contrast();
Input.EnhanceResolution(300);
Input.Invert();
Input.Sharpen();
Input.ToGrayScale();

try
{

//------------------- # This causes the Error - Using Try Catch to Ignore it # -------------------\\
var Result = Ocr.Read(Input);
text = Result.Text;

}
catch
{
}

}
Также удаление всего вышеперечисленного только с использованием «1-строчного кода» приводит к тому же сообщению об ошибке:

Код: Выделить всё

var Result = new IronTesseract().Read(@"images\image.png").Text;
Надеюсь, кто-нибудь поможет мне выяснить, что именно вызывает эту проблему.

Подробнее здесь: https://stackoverflow.com/questions/655 ... d-iron-ocr
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»