文字识别-Tesseract.js

想做一个星系的辅助工具,由于安卓不太熟悉,先尝试一下文字解析和核心的算法

开始

  • 目前基本的目标就是从图片中解析出每一行和每一列的数字,然后根据其计算出方块的位置


  • 两个思路,第一种是获取到当前游戏的截图,从截图中识别出数字。第二种是能否借助无障碍功能直接读取到屏幕文本。本质都是做成一个辅助工具。

解析文字

  • 借助这个工具: Tesseract.js, 先识别一下文字。官方已经提供了例子,改一下路径就可以了。
const { createWorker } = require('tesseract.js');

const worker = createWorker({
  logger: m => console.log(m), // Add logger here
});

(async () => {
  await worker.load();
  await worker.loadLanguage('eng');
  await worker.initialize('eng');
  const { data: { text } } = await worker.recognize('./game.png');
  console.log(text);
  await worker.terminate();
})();
  await worker.setParameters({
    "tessedit_char_whitelist": '0123456789'
  })
  • 修改后大部分数字识别准确,但是图中方框,三角这些有时会被识别为数字,指定识别的矩形区域,消除一下识别干扰

  • 试了行, 列划分,甚至将其划为单个数字块,精度还是不够,并且划分为单个字符后由于只计算并指定了位置,实际每次识别还是要读取整个图片

  • 数字识别准确,但数字之间没有空格,需要更精确的字符位置来分开粘在一起的数字

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容