我正在使用“iron OCR”,比如“Tesseract”来检测和扫描屏幕截图中的某些文本。
现在我有以下错误。每次使用 iron OCR 扫描图像中的文本时,它都会尝试访问 iron OCR 日志文件,该文件之前仍以某种方式被进程使用。所以每次我收到错误消息时,它无法访问日志文件,因为它已经在使用中。尽管如此,扫描仍然有效,我得到了一个有效的结果,即使它因为那个错误给了我一个例外。
我的程序是这样工作的:
- 它会截取我屏幕某些区域的屏幕截图。
- 它使用 iron OCR 分析该图像并查找文本。
- 这个过程会无限重复。
我有以下代码:
//------------------------- # 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;
我希望有人能帮我弄清楚究竟是什么导致了这个问题。