M8Test Help

百度OCR

使用百度OCR前,需先在百度智能云创建应用。

创建完成后,需获取以下信息用于后续配置:

  • App ID

  • Api Key

  • Secret Key

367

在虚拟屏幕中识别文字

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.baidu() 用于创建 BaiduOcr 对象 val baiduOcr = _ocrs!!.baidu { // BaiduOcrConfig.setCredential() 用于设置百度 OCR 客户端凭证信息, 依次为 appId, apiKey, secretKey。 setCredential("appId", "apiKey", "secretKey") } // Ocr.analyzeDisplay() 用于分析指定id的虚拟屏幕并获取结果(OcrResults), 第一个参数为虚拟屏幕id, 第二个参数为设置识别区域的函数,如果为null表示分析全屏 val screenResults = baiduOcr.analyzeDisplay(display.getId()) { // 设置需要识别的区域, 这里是全屏,如果不设置默认也是全屏 set(0, 0, display.getWidth(), display.getHeight()) } _console.log(screenResults.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.baidu() 用于创建 BaiduOcr 对象 def baiduOcr = $ocrs.baidu { // BaiduOcrConfig.setCredential() 用于设置百度 OCR 客户端凭证信息, 依次为 appId, apiKey, secretKey。 it.setCredential("appId", "apiKey", "secretKey") } // Ocr.analyzeDisplay() 用于分析指定id的虚拟屏幕并获取结果(OcrResults), 第一个参数为虚拟屏幕id, 第二个参数为设置识别区域的函数,如果为null表示分析全屏 def screenResults = baiduOcr.analyzeDisplay(display.getId()) { // 设置需要识别的区域, 这里是全屏,如果不设置默认也是全屏 it.set(0, 0, display.getWidth(), display.getHeight()) } $console.log(screenResults.getText("\n"))
import android.graphics.Rect; import com.m8test.ocr.api.BaiduOcr; import com.m8test.ocr.api.BaiduOcrConfig; import com.m8test.ocr.api.OcrResults; 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; } }); } // 获取一个虚拟屏幕 final Display display = getDisplay(); // Ocrs.baidu() 用于创建 BaiduOcr 对象 BaiduOcr baiduOcr = $ocrs.baidu(new Function1() { @Override public Object invoke(Object o) { BaiduOcrConfig it = (BaiduOcrConfig) o; // BaiduOcrConfig.setCredential() 用于设置百度 OCR 客户端凭证信息, 依次为 appId, apiKey, secretKey。 it.setCredential("appId", "apiKey", "secretKey"); return null; } }); // Ocr.analyzeDisplay() 用于分析指定id的虚拟屏幕并获取结果(OcrResults), 第一个参数为虚拟屏幕id, 第二个参数为设置识别区域的函数,如果为null表示分析全屏 OcrResults screenResults = baiduOcr.analyzeDisplay(display.getId(), new Function1() { @Override public Object invoke(Object o) { Rect it = (Rect) o; // 设置需要识别的区域, 这里是全屏,如果不设置默认也是全屏 it.set(0, 0, display.getWidth(), display.getHeight()); return null; } }); $console.log(screenResults.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.baidu() 用于创建 BaiduOcr 对象 let baiduOcr = $ocrs.baidu(function (it) { // BaiduOcrConfig.setCredential() 用于设置百度 OCR 客户端凭证信息, 依次为 appId, apiKey, secretKey。 it.setCredential("appId", "apiKey", "secretKey") }) // Ocr.analyzeDisplay() 用于分析指定id的虚拟屏幕并获取结果(OcrResults), 第一个参数为虚拟屏幕id, 第二个参数为设置识别区域的函数,如果为null表示分析全屏 let screenResults = baiduOcr.analyzeDisplay(display.getId(), function (it) { // 设置需要识别的区域, 这里是全屏,如果不设置默认也是全屏 it.set(0, 0, display.getWidth(), display.getHeight()) }) $console.log(screenResults.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.baidu() 用于创建 BaiduOcr 对象 local baiduOcr = _ocrs:baidu(function(it) -- BaiduOcrConfig.setCredential() 用于设置百度 OCR 客户端凭证信息, 依次为 appId, apiKey, secretKey。 it:setCredential("appId", "apiKey", "secretKey") end) -- Ocr.analyzeDisplay() 用于分析指定id的虚拟屏幕并获取结果(OcrResults), 第一个参数为虚拟屏幕id, 第二个参数为设置识别区域的函数,如果为null表示分析全屏 local screenResults = baiduOcr:analyzeDisplay(display:getId(), function(it) -- 设置需要识别的区域, 这里是全屏,如果不设置默认也是全屏 it:set(0, 0, display:getWidth(), display:getHeight()) end) _console:log(screenResults: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.baidu() 用于创建 BaiduOcr 对象 $baiduOcr = $ocrs->baidu(function ($it) { // BaiduOcrConfig.setCredential() 用于设置百度 OCR 客户端凭证信息, 依次为 appId, apiKey, secretKey。 $it->setCredential("appId", "apiKey", "secretKey"); }); // Ocr.analyzeDisplay() 用于分析指定id的虚拟屏幕并获取结果(OcrResults), 第一个参数为虚拟屏幕id, 第二个参数为设置识别区域的函数,如果为null表示分析全屏 $screenResults = $baiduOcr->analyzeDisplay($display->getId(), function ($it) use ($display) { // 设置需要识别的区域, 这里是全屏,如果不设置默认也是全屏 $it->set(0, 0, $display->getWidth(), $display->getHeight()); }); /** @var m8test_java\com\m8test\script\core\api\console\Console $console */ global $console; $console->log($screenResults->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.baidu() 用于创建 BaiduOcr 对象 baiduOcr = _ocrs.baidu(lambda it: # BaiduOcrConfig.setCredential() 用于设置百度 OCR 客户端凭证信息, 依次为 appId, apiKey, secretKey。 it.setCredential("appId", "apiKey", "secretKey")) # Ocr.analyzeDisplay() 用于分析指定id的虚拟屏幕并获取结果(OcrResults), 第一个参数为虚拟屏幕id, 第二个参数为设置识别区域的函数,如果为null表示分析全屏 screenResults = baiduOcr.analyzeDisplay(display.getId(), lambda it: # 设置需要识别的区域, 这里是全屏,如果不设置默认也是全屏 it.set(0, 0, display.getWidth(), display.getHeight())) _console.log(screenResults.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.BaiduOcrConfig' # Ocrs.baidu() 用于创建 BaiduOcr 对象 baiduOcr = $ocrs.baidu { # @type it [BaiduOcrConfig] |it| # BaiduOcrConfig.setCredential() 用于设置百度 OCR 客户端凭证信息, 依次为 appId, apiKey, secretKey。 it.setCredential("appId", "apiKey", "secretKey") } java_import 'android.graphics.Rect' # Ocr.analyzeDisplay() 用于分析指定id的虚拟屏幕并获取结果(OcrResults), 第一个参数为虚拟屏幕id, 第二个参数为设置识别区域的函数,如果为null表示分析全屏 screenResults = baiduOcr.analyzeDisplay(display.getId()) { # @type it[Rect] |it| # 设置需要识别的区域, 这里是全屏,如果不设置默认也是全屏 it.set(0, 0, display.getWidth(), display.getHeight()) } $console.log(screenResults.getText("\n"))

在图片中识别文字

import com.m8test.script.GlobalVariables._console import com.m8test.script.GlobalVariables._ocrs // Ocrs.baidu() 用于创建 BaiduOcr 对象 val baiduOcr = _ocrs!!.baidu { // BaiduOcrConfig.setCredential() 用于设置百度 OCR 客户端凭证信息, 依次为 appId, apiKey, secretKey。 setCredential("appId", "apiKey", "secretKey") } // Ocr.analyzeImage() 用于分析图片并获取结果(OcrResults), 第一个参数为需要分析的图片路径,第二个参数为设置识别区域的函数,如果为null则表示分析整个图片 val results = baiduOcr.analyzeImage("/sdcard/M8Test/groovy-screenshot.png", null) // OcrResults.getText() 用于获取 Ocr 识别结果 _console.log(results.getText("\n"))
// Ocrs.baidu() 用于创建 BaiduOcr 对象 def baiduOcr = $ocrs.baidu { // BaiduOcrConfig.setCredential() 用于设置百度 OCR 客户端凭证信息, 依次为 appId, apiKey, secretKey。 it.setCredential("appId", "apiKey", "secretKey") } // Ocr.analyzeImage() 用于分析图片并获取结果(OcrResults), 第一个参数为需要分析的图片路径,第二个参数为设置识别区域的函数,如果为null则表示分析整个图片 def results = baiduOcr.analyzeImage("/sdcard/M8Test/groovy-screenshot.png", null) // OcrResults.getText() 用于获取 Ocr 识别结果 $console.log(results.getText("\n"))
import com.m8test.ocr.api.BaiduOcr; import com.m8test.ocr.api.BaiduOcrConfig; import com.m8test.ocr.api.OcrResults; import kotlin.jvm.functions.Function1; import static com.m8test.script.GlobalVariables.$console; import static com.m8test.script.GlobalVariables.$ocrs; // Ocrs.baidu() 用于创建 BaiduOcr 对象 BaiduOcr baiduOcr = $ocrs.baidu(new Function1() { @Override public Object invoke(Object o) { BaiduOcrConfig it = (BaiduOcrConfig) o; // BaiduOcrConfig.setCredential() 用于设置百度 OCR 客户端凭证信息, 依次为 appId, apiKey, secretKey。 it.setCredential("appId", "apiKey", "secretKey"); return null; } }); // Ocr.analyzeImage() 用于分析图片并获取结果(OcrResults), 第一个参数为需要分析的图片路径,第二个参数为设置识别区域的函数,如果为null则表示分析整个图片 OcrResults results = baiduOcr.analyzeImage("/sdcard/M8Test/groovy-screenshot.png", null); // OcrResults.getText() 用于获取 Ocr 识别结果 $console.log(results.getText("\n"));
// Ocrs.baidu() 用于创建 BaiduOcr 对象 let baiduOcr = $ocrs.baidu(function (it) { // BaiduOcrConfig.setCredential() 用于设置百度 OCR 客户端凭证信息, 依次为 appId, apiKey, secretKey。 it.setCredential("appId", "apiKey", "secretKey") }) // Ocr.analyzeImage() 用于分析图片并获取结果(OcrResults), 第一个参数为需要分析的图片路径,第二个参数为设置识别区域的函数,如果为null则表示分析整个图片 let results = baiduOcr.analyzeImage("/sdcard/M8Test/groovy-screenshot.png", null) // OcrResults.getText() 用于获取 Ocr 识别结果 $console.log(results.getText("\n"))
-- Ocrs.baidu() 用于创建 BaiduOcr 对象 local baiduOcr = _ocrs:baidu(function(it) -- BaiduOcrConfig.setCredential() 用于设置百度 OCR 客户端凭证信息, 依次为 appId, apiKey, secretKey。 it:setCredential("appId", "apiKey", "secretKey") end) -- Ocr.analyzeImage() 用于分析图片并获取结果(OcrResults), 第一个参数为需要分析的图片路径,第二个参数为设置识别区域的函数,如果为null则表示分析整个图片 local results = baiduOcr: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.baidu() 用于创建 BaiduOcr 对象 $baiduOcr = $ocrs->baidu(function ($it) { // BaiduOcrConfig.setCredential() 用于设置百度 OCR 客户端凭证信息, 依次为 appId, apiKey, secretKey。 $it->setCredential("appId", "apiKey", "secretKey"); }); // Ocr.analyzeImage() 用于分析图片并获取结果(OcrResults), 第一个参数为需要分析的图片路径,第二个参数为设置识别区域的函数,如果为null则表示分析整个图片 $results = $baiduOcr->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.baidu() 用于创建 BaiduOcr 对象 baiduOcr = _ocrs.baidu(lambda it: # BaiduOcrConfig.setCredential() 用于设置百度 OCR 客户端凭证信息, 依次为 appId, apiKey, secretKey。 it.setCredential("appId", "apiKey", "secretKey")) # Ocr.analyzeImage() 用于分析图片并获取结果(OcrResults), 第一个参数为需要分析的图片路径,第二个参数为设置识别区域的函数,如果为null则表示分析整个图片 results = baiduOcr.analyzeImage("/sdcard/M8Test/groovy-screenshot.png", None) # OcrResults.getText() 用于获取 Ocr 识别结果 _console.log(results.getText("\n"))
java_import "com.m8test.ocr.api.BaiduOcrConfig" # Ocrs.baidu() 用于创建 BaiduOcr 对象 baiduOcr = $ocrs.baidu { # @type it [BaiduOcrConfig] |it| # BaiduOcrConfig.setCredential() 用于设置百度 OCR 客户端凭证信息, 依次为 appId, apiKey, secretKey。 it.setCredential("appId", "apiKey", "secretKey") } # Ocr.analyzeImage() 用于分析图片并获取结果(OcrResults), 第一个参数为需要分析的图片路径,第二个参数为设置识别区域的函数,如果为null则表示分析整个图片 results = baiduOcr.analyzeImage("/sdcard/M8Test/groovy-screenshot.png", nil) # OcrResults.getText() 用于获取 Ocr 识别结果 $console.log(results.getText("\n"))
Last modified: 08 August 2025