M8Test Help

Tesseract OCR

模型文件可通过以下渠道下载:

下载完成后,可选择以下任一方式存放:

  1. 脚本项目的 res/tesseractdata 目录

  2. 本地任意目录下的 tesseractdata 子目录

完成存放后,即可在代码中加载并使用这些模型。

369
370

在虚拟屏幕中识别

import com.m8test.script.GlobalVariables.* import com.m8test.script.core.api.display.Display // 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个 fun getDisplay(): Display { return _displays.getAll().firstOrNull() ?: _displays.create { // 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置 } } // 获取一个虚拟屏幕 val display = getDisplay() // Ocrs.tesseract() 用于创建 TesseractOcr 对象 val tesseractOcr = _ocrs!!.tesseract { // TesseractOcrConfig.addTrainedData() 用于添加 Tesseract 训练数据文件, 可以在 https://github.com/tesseract-ocr/tessdata_fast 下载 addTrainedData("/sdcard/M8Test/ocr/tesseractdata/chi_sim.traineddata") // 添加中文 addTrainedData("/sdcard/M8Test/ocr/tesseractdata/eng.traineddata") // 添加英文 // 设置 Tesseract api,指定识别语言和 OCR 引擎模式。 setApi("chi_sim+eng", 1) } // Ocr.analyzeDisplay() 用于分析指定id的虚拟屏幕并获取结果(OcrResults), 第一个参数为虚拟屏幕id, 第二个参数为设置识别区域的函数,如果为null表示分析全屏 val results = tesseractOcr.analyzeDisplay(display.getId(), null) _console.log(results.getText("\n"))
import com.m8test.script.core.api.display.Display // 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个 Display getDisplay() { def allDisplays = $displays.getAll() if (allDisplays.size() > 0) return allDisplays.get(0) // 创建虚拟屏幕, create 方法会返回一个 Display 对象 def display = $displays.create { // 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置 } return display } // 获取一个虚拟屏幕 def display = getDisplay() // Ocrs.tesseract() 用于创建 TesseractOcr 对象 def tesseractOcr = $ocrs.tesseract { // TesseractOcrConfig.addTrainedData() 用于添加 Tesseract 训练数据文件, 可以在 https://github.com/tesseract-ocr/tessdata_fast 下载 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/chi_sim.traineddata") // 添加中文 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/eng.traineddata") // 添加英文 // 设置 Tesseract api,指定识别语言和 OCR 引擎模式。 it.setApi("chi_sim+eng", 1) } // Ocr.analyzeDisplay() 用于分析指定id的虚拟屏幕并获取结果(OcrResults), 第一个参数为虚拟屏幕id, 第二个参数为设置识别区域的函数,如果为null表示分析全屏 def results = tesseractOcr.analyzeDisplay(display.getId(), null) $console.log(results.getText("\n"))
import com.m8test.ocr.api.OcrResults; import com.m8test.ocr.api.TesseractOcr; import com.m8test.ocr.api.TesseractOcrConfig; import com.m8test.script.core.api.display.Display; import kotlin.jvm.functions.Function1; import java.util.List; import static com.m8test.script.GlobalVariables.*; private static Display getDisplay() { List<Display> allDisplays = $displays.getAll(); if (allDisplays.size() > 0) return (Display) allDisplays.get(0); // 创建虚拟屏幕, create 方法会返回一个 Display 对象 return $displays.create(new Function1() { @Override public Object invoke(Object o) { // 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置 return null; } }); } // 获取一个虚拟屏幕 Display display = getDisplay(); // Ocrs.tesseract() 用于创建 TesseractOcr 对象 TesseractOcr tesseractOcr = $ocrs.tesseract(new Function1() { @Override public Object invoke(Object o) { TesseractOcrConfig it = (TesseractOcrConfig) o; // TesseractOcrConfig.addTrainedData() 用于添加 Tesseract 训练数据文件, 可以在 https://github.com/tesseract-ocr/tessdata_fast 下载 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/chi_sim.traineddata"); // 添加中文 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/eng.traineddata"); // 添加英文 // 设置 Tesseract api,指定识别语言和 OCR 引擎模式。 it.setApi("chi_sim+eng", 1); return null; } }); // Ocr.analyzeDisplay() 用于分析指定id的虚拟屏幕并获取结果(OcrResults), 第一个参数为虚拟屏幕id, 第二个参数为设置识别区域的函数,如果为null表示分析全屏 OcrResults results = tesseractOcr.analyzeDisplay(display.getId(), null); $console.log(results.getText("\n"));
/** * 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个 * * @returns {Packages.com.m8test.script.core.api.display.Display} */ function getDisplay() { let allDisplays = $displays.getAll() if (allDisplays.size() > 0) return allDisplays.get(0) // 创建虚拟屏幕, create 方法会返回一个 Display 对象 return $displays.create(function (config) { // 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置 }) } // 获取一个虚拟屏幕 let display = getDisplay() // Ocrs.tesseract() 用于创建 TesseractOcr 对象 let tesseractOcr = $ocrs.tesseract(function (it) { // TesseractOcrConfig.addTrainedData() 用于添加 Tesseract 训练数据文件, 可以在 https://github.com/tesseract-ocr/tessdata_fast 下载 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/chi_sim.traineddata") // 添加中文 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/eng.traineddata") // 添加英文 // 设置 Tesseract api,指定识别语言和 OCR 引擎模式。 it.setApi("chi_sim+eng", 1) }) // Ocr.analyzeDisplay() 用于分析指定id的虚拟屏幕并获取结果(OcrResults), 第一个参数为虚拟屏幕id, 第二个参数为设置识别区域的函数,如果为null表示分析全屏 let results = tesseractOcr.analyzeDisplay(display.getId(), null) $console.log(results.getText("\n"))
-- 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个 --- @return m8test_java.com.m8test.script.core.api.display.Display function getDisplay() local allDisplays = _displays:getAll() if not allDisplays:isEmpty() then return allDisplays:get(0) else return _displays:create(function(config) -- 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置 end) end end -- 获取一个虚拟屏幕 local display = getDisplay() -- Ocrs.tesseract() 用于创建 TesseractOcr 对象 local tesseractOcr = _ocrs:tesseract(function(it) -- TesseractOcrConfig.addTrainedData() 用于添加 Tesseract 训练数据文件, 可以在 https:--github.com/tesseract-ocr/tessdata_fast 下载 it:addTrainedData("/sdcard/M8Test/ocr/tesseractdata/chi_sim.traineddata") -- 添加中文 it:addTrainedData("/sdcard/M8Test/ocr/tesseractdata/eng.traineddata") -- 添加英文 -- 设置 Tesseract api,指定识别语言和 OCR 引擎模式。 it:setApi("chi_sim+eng", 1) end) -- Ocr.analyzeDisplay() 用于分析指定id的虚拟屏幕并获取结果(OcrResults), 第一个参数为虚拟屏幕id, 第二个参数为设置识别区域的函数,如果为null表示分析全屏 local results = tesseractOcr:analyzeDisplay(display:getId(), nil) _console:log(results:getText("\n"))
<?php /** @var m8test_java\com\m8test\script\core\api\display\Displays $displays */ global $displays; /** * 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个 * @param \m8test_java\com\m8test\script\core\api\display\Displays $displays * @return \m8test_java\com\m8test\script\core\api\display\Display */ function getDisplay($displays) { $allDisplays = $displays->getAll(); if ($allDisplays->size() > 0) { return $allDisplays->get(0); } else { return $displays->create(function ($config) { // 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置 }); } } // 获取一个虚拟屏幕 $display = getDisplay($displays); /** @var m8test_java\com\m8test\ocr\api\Ocrs $ocrs */ global $ocrs; // Ocrs.tesseract() 用于创建 TesseractOcr 对象 $tesseractOcr = $ocrs->tesseract(function($it) { // TesseractOcrConfig.addTrainedData() 用于添加 Tesseract 训练数据文件, 可以在 https://github.com/tesseract-ocr/tessdata_fast 下载 $it->addTrainedData("/sdcard/M8Test/ocr/tesseractdata/chi_sim.traineddata"); // 添加中文 $it->addTrainedData("/sdcard/M8Test/ocr/tesseractdata/eng.traineddata"); // 添加英文 // 设置 Tesseract api,指定识别语言和 OCR 引擎模式。 $it->setApi("chi_sim+eng", 1); }); // Ocr.analyzeDisplay() 用于分析指定id的虚拟屏幕并获取结果(OcrResults), 第一个参数为虚拟屏幕id, 第二个参数为设置识别区域的函数,如果为null表示分析全屏 $results = $tesseractOcr->analyzeDisplay($display->getId(), null); /** @var m8test_java\com\m8test\script\core\api\console\Console $console */ global $console; $console->log($results->getText("\n"));
from m8test_java.com.m8test.script.GlobalVariables import _console from m8test_java.com.m8test.script.GlobalVariables import _displays from m8test_java.com.m8test.script.GlobalVariables import _ocrs # 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个 def getDisplay(): allDisplays = _displays.getAll() if allDisplays.size() > 0: return allDisplays.get(0) else: return _displays.create(lambda config: # 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置 config) # 获取一个虚拟屏幕 display = getDisplay() # Ocrs.tesseract() 用于创建 TesseractOcr 对象 tesseractOcr = _ocrs.tesseract(lambda it: # TesseractOcrConfig.addTrainedData() 用于添加 Tesseract 训练数据文件, 可以在 https:#github.com/tesseract-ocr/tessdata_fast 下载 (it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/chi_sim.traineddata"), # 添加中文 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/eng.traineddata"), # 添加英文 # 设置 Tesseract api,指定识别语言和 OCR 引擎模式。 it.setApi("chi_sim+eng", 1))) # Ocr.analyzeDisplay() 用于分析指定id的虚拟屏幕并获取结果(OcrResults), 第一个参数为虚拟屏幕id, 第二个参数为设置识别区域的函数,如果为null表示分析全屏 results = tesseractOcr.analyzeDisplay(display.getId(), None) _console.log(results.getText("\n"))
# encoding: utf-8 java_import 'com.m8test.script.core.api.display.Display' # 获取一个虚拟屏幕,如果已经存在的话则直接使用原有的,否则创建一个 # @return [Display] 已存在或者新创建的虚拟屏幕 def getDisplay allDisplays = $displays.getAll if allDisplays.size > 0 allDisplays.get(0) else $displays.create { |config| # 这里可以配置虚拟屏幕,推荐直接使用默认配置,如果出错的话再手动配置 } end end # 获取一个虚拟屏幕 display = getDisplay() java_import 'com.m8test.ocr.api.TesseractOcrConfig' # Ocrs.tesseract() 用于创建 TesseractOcr 对象 tesseractOcr = $ocrs.tesseract { # @type it [TesseractOcrConfig] |it| # TesseractOcrConfig.addTrainedData() 用于添加 Tesseract 训练数据文件, 可以在 https:#github.com/tesseract-ocr/tessdata_fast 下载 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/chi_sim.traineddata") # 添加中文 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/eng.traineddata") # 添加英文 # 设置 Tesseract api,指定识别语言和 OCR 引擎模式。 it.setApi("chi_sim+eng", 1) } # Ocr.analyzeDisplay() 用于分析指定id的虚拟屏幕并获取结果(OcrResults), 第一个参数为虚拟屏幕id, 第二个参数为设置识别区域的函数,如果为null表示分析全屏 results = tesseractOcr.analyzeDisplay(display.getId(), nil) $console.log(results.getText("\n"))

在图片中识别

import com.m8test.script.GlobalVariables._console import com.m8test.script.GlobalVariables._ocrs // Ocrs.tesseract() 用于创建 TesseractOcr 对象 val tesseractOcr = _ocrs!!.tesseract { // TesseractOcrConfig.addTrainedData() 用于添加 Tesseract 训练数据文件, 可以在 https://github.com/tesseract-ocr/tessdata_fast 下载 addTrainedData("/sdcard/M8Test/ocr/tesseractdata/chi_sim.traineddata") // 添加中文 addTrainedData("/sdcard/M8Test/ocr/tesseractdata/eng.traineddata") // 添加英文 // 设置 Tesseract api,指定识别语言和 OCR 引擎模式。 setApi("chi_sim+eng", 1) } // Ocr.analyzeImage() 用于分析图片并获取结果(OcrResults), 第一个参数为需要分析的图片路径,第二个参数为设置识别区域的函数,如果为null则表示分析整个图片 val results = tesseractOcr.analyzeImage("/sdcard/M8Test/groovy-screenshot.png", null) // OcrResults.getText() 用于获取 Ocr 识别结果 _console.log(results.getText("\n"))
// Ocrs.tesseract() 用于创建 TesseractOcr 对象 def tesseractOcr = $ocrs.tesseract { // TesseractOcrConfig.addTrainedData() 用于添加 Tesseract 训练数据文件, 可以在 https://github.com/tesseract-ocr/tessdata_fast 下载 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/chi_sim.traineddata") // 添加中文 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/eng.traineddata") // 添加英文 // 设置 Tesseract api,指定识别语言和 OCR 引擎模式。 it.setApi("chi_sim+eng", 1) } // Ocr.analyzeImage() 用于分析图片并获取结果(OcrResults), 第一个参数为需要分析的图片路径,第二个参数为设置识别区域的函数,如果为null则表示分析整个图片 def results = tesseractOcr.analyzeImage("/sdcard/M8Test/groovy-screenshot.png", null) // OcrResults.getText() 用于获取 Ocr 识别结果 $console.log(results.getText("\n"))
import com.m8test.ocr.api.OcrResults; import com.m8test.ocr.api.TesseractOcr; import com.m8test.ocr.api.TesseractOcrConfig; import kotlin.jvm.functions.Function1; import static com.m8test.script.GlobalVariables.$console; import static com.m8test.script.GlobalVariables.$ocrs; // Ocrs.tesseract() 用于创建 TesseractOcr 对象 TesseractOcr tesseractOcr = $ocrs.tesseract(new Function1() { @Override public Object invoke(Object o) { TesseractOcrConfig it = (TesseractOcrConfig) o; // TesseractOcrConfig.addTrainedData() 用于添加 Tesseract 训练数据文件, 可以在 https://github.com/tesseract-ocr/tessdata_fast 下载 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/chi_sim.traineddata"); // 添加中文 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/eng.traineddata"); // 添加英文 // 设置 Tesseract api,指定识别语言和 OCR 引擎模式。 it.setApi("chi_sim+eng", 1); return null; } }); // Ocr.analyzeImage() 用于分析图片并获取结果(OcrResults), 第一个参数为需要分析的图片路径,第二个参数为设置识别区域的函数,如果为null则表示分析整个图片 OcrResults results = tesseractOcr.analyzeImage("/sdcard/M8Test/groovy-screenshot.png", null); // OcrResults.getText() 用于获取 Ocr 识别结果 $console.log(results.getText("\n"));
// Ocrs.tesseract() 用于创建 TesseractOcr 对象 let tesseractOcr = $ocrs.tesseract(function (it) { // TesseractOcrConfig.addTrainedData() 用于添加 Tesseract 训练数据文件, 可以在 https://github.com/tesseract-ocr/tessdata_fast 下载 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/chi_sim.traineddata") // 添加中文 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/eng.traineddata") // 添加英文 // 设置 Tesseract api,指定识别语言和 OCR 引擎模式。 it.setApi("chi_sim+eng", 1) }) // Ocr.analyzeImage() 用于分析图片并获取结果(OcrResults), 第一个参数为需要分析的图片路径,第二个参数为设置识别区域的函数,如果为null则表示分析整个图片 let results = tesseractOcr.analyzeImage("/sdcard/M8Test/groovy-screenshot.png", null) // OcrResults.getText() 用于获取 Ocr 识别结果 $console.log(results.getText("\n"))
-- Ocrs.tesseract() 用于创建 TesseractOcr 对象 local tesseractOcr = _ocrs:tesseract(function(it) -- TesseractOcrConfig.addTrainedData() 用于添加 Tesseract 训练数据文件, 可以在 https:--github.com/tesseract-ocr/tessdata_fast 下载 it:addTrainedData("/sdcard/M8Test/ocr/tesseractdata/chi_sim.traineddata") -- 添加中文 it:addTrainedData("/sdcard/M8Test/ocr/tesseractdata/eng.traineddata") -- 添加英文 -- 设置 Tesseract api,指定识别语言和 OCR 引擎模式。 it:setApi("chi_sim+eng", 1) end) -- Ocr.analyzeImage() 用于分析图片并获取结果(OcrResults), 第一个参数为需要分析的图片路径,第二个参数为设置识别区域的函数,如果为null则表示分析整个图片 local results = tesseractOcr:analyzeImage("/sdcard/M8Test/groovy-screenshot.png", nil) -- OcrResults.getText() 用于获取 Ocr 识别结果 _console:log(results:getText("\n"))
<?php /** @var m8test_java\com\m8test\script\core\api\console\Console $console */ global $console; /** @var m8test_java\com\m8test\ocr\api\Ocrs $ocrs */ global $ocrs; // Ocrs.tesseract() 用于创建 TesseractOcr 对象 $tesseractOcr = $ocrs->tesseract(function ($it) { // TesseractOcrConfig.addTrainedData() 用于添加 Tesseract 训练数据文件, 可以在 https://github.com/tesseract-ocr/tessdata_fast 下载 $it->addTrainedData("/sdcard/M8Test/ocr/tesseractdata/chi_sim.traineddata"); // 添加中文 $it->addTrainedData("/sdcard/M8Test/ocr/tesseractdata/eng.traineddata"); // 添加英文 // 设置 Tesseract api,指定识别语言和 OCR 引擎模式。 $it->setApi("chi_sim+eng", 1); }); // Ocr.analyzeImage() 用于分析图片并获取结果(OcrResults), 第一个参数为需要分析的图片路径,第二个参数为设置识别区域的函数,如果为null则表示分析整个图片 $results = $tesseractOcr->analyzeImage("/sdcard/M8Test/groovy-screenshot.png", null); // OcrResults.getText() 用于获取 Ocr 识别结果 $console->log($results->getText("\n"));
from m8test_java.com.m8test.script.GlobalVariables import _console from m8test_java.com.m8test.script.GlobalVariables import _ocrs # Ocrs.tesseract() 用于创建 TesseractOcr 对象 tesseractOcr = _ocrs.tesseract(lambda it: # TesseractOcrConfig.addTrainedData() 用于添加 Tesseract 训练数据文件, 可以在 https:#github.com/tesseract-ocr/tessdata_fast 下载 (it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/chi_sim.traineddata"), # 添加中文 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/eng.traineddata"), # 添加英文 # 设置 Tesseract api,指定识别语言和 OCR 引擎模式。 it.setApi("chi_sim+eng", 1))) # Ocr.analyzeImage() 用于分析图片并获取结果(OcrResults), 第一个参数为需要分析的图片路径,第二个参数为设置识别区域的函数,如果为null则表示分析整个图片 results = tesseractOcr.analyzeImage("/sdcard/M8Test/groovy-screenshot.png", None) # OcrResults.getText() 用于获取 Ocr 识别结果 _console.log(results.getText("\n"))
java_import "com.m8test.ocr.api.TesseractOcrConfig" # Ocrs.tesseract() 用于创建 TesseractOcr 对象 tesseractOcr = $ocrs.tesseract { # @type it [TesseractOcrConfig] |it| # TesseractOcrConfig.addTrainedData() 用于添加 Tesseract 训练数据文件, 可以在 https:#github.com/tesseract-ocr/tessdata_fast 下载 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/chi_sim.traineddata") # 添加中文 it.addTrainedData("/sdcard/M8Test/ocr/tesseractdata/eng.traineddata") # 添加英文 # 设置 Tesseract api,指定识别语言和 OCR 引擎模式。 it.setApi("chi_sim+eng", 1) } # Ocr.analyzeImage() 用于分析图片并获取结果(OcrResults), 第一个参数为需要分析的图片路径,第二个参数为设置识别区域的函数,如果为null则表示分析整个图片 results = tesseractOcr.analyzeImage("/sdcard/M8Test/groovy-screenshot.png", nil) # OcrResults.getText() 用于获取 Ocr 识别结果 $console.log(results.getText("\n"))
Last modified: 08 August 2025