c# - 尝试使用 OCR 从屏幕上抓取一个单词而不消耗大量 CPU
问题描述
我正在尝试使用 OCR(Tessdata)以 100 毫秒的间隔从屏幕的特定部分读取一个单词,它可以工作,但问题是这非常消耗 CPU。这是我正在使用的代码,告诉我是否可以做一些事情来减少耗时,也许 tessdata 引擎有一些限制。谢谢
private Bitmap capturearea(Control control)
{
Size size = control.ClientSize;
Bitmap tmpBmp = new Bitmap(size.Width, size.Height);
Graphics g;
g = Graphics.FromImage(tmpBmp);
g.CopyFromScreen(control.PointToScreen(new Point(0, 0)), new Point(0, 0), new Size(500, 500));
return tmpBmp;
}
private void timer1_Tick(object sender, EventArgs e)
{
img = capturearea(pictureBox1);
pictureBox2.Image = img;
TesseractEngine engine = new TesseractEngine("./tessdata", "eng", EngineMode.Default);
Page page = engine.Process(img, PageSegMode.SingleWord);
richTextBox1.Text = page.GetText();
}
解决方案
推荐阅读
- sql - 如何在 Oracle SQL regexp_like 查询中转义](括号)?
- objective-c - 将 CIAffineClamp 和 CIGaussianBlur 与 CALayer backgroundFilters 一起使用
- java - 从 Java 中的 DataFrame 中查找每天的最大行程数 - Spark
- jupyter-notebook - Jupyter Notebook 下载为 LaTeX 或 PDF 失败,但使用 nbconvert 从命令行工作
- javascript - jQuery 选择器问题 - 尝试选择和记录链接
- python - 用户选择/键入所需页面的 Django 分页
- ms-word - 动态显示文本 MS Word 邮件合并
- django - 创建配置文件编辑视图
- sprite-kit - UIPanGestureRecognizer 未按预期运行
- pandas - 有效地使用混合类型更改数据帧值 dtype