首页 > 解决方案 > 尝试使用 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();
    }

标签: c#ocr

解决方案


推荐阅读