文字識別-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'
  })
  • 修改后大部分數字識別準確,但是圖中方框,三角這些有時會被識別為數字,指定識別的矩形區域,消除一下識別干擾

  • 試了行, 列劃分,甚至將其劃為單個數字塊,精度還是不夠,并且劃分為單個字符后由于只計算并指定了位置,實際每次識別還是要讀取整個圖片

  • 數字識別準確,但數字之間沒有空格,需要更精確的字符位置來分開粘在一起的數字

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。