自动发帖软件
标题:
苹果IOS系统找字OCR方法例子
[打印本页]
作者:
发帖软件
时间:
3 小时前
标题:
苹果IOS系统找字OCR方法例子
苹果IOS系统找字OCR方法例子
1.png
(1.09 MB, 下载次数: 0)
3 小时前
上传
2.png
(706.73 KB, 下载次数: 0)
3 小时前
上传
3.png
(1.13 MB, 下载次数: 0)
3 小时前
上传
// 苹果系统找字方法综合示例
// 交流QQ群711841924
function printl(msg) {
console.log(msg);
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
function main() {
printl("========== 苹果系统找字方法综合示例 ==========\n");
example1_getAllString(); // 示例1: 获取所有识别的文本
example2_getAllDetect(); // 示例2: 获取所有识别的目标对象
example3_findText(); // 示例3: 精确查找特定文本
example4_findIncludeText(); // 示例4: 查找包含特定文本的单个目标
example5_findIncludeTexts(); // 示例5: 查找包含特定文本的多个目标
example6_findTextWithRegex(); // 示例6: 正则表达式查找
example7_getJSON(); // 示例7: 获取JSON格式结果
example8_lockOCR(); // 示例8: OCR缓存锁定机制
example9_clickRandom(); // 示例9: 随机位置点击
example10_regionOCR(); // 示例10: 区域OCR识别
example11_iterateTexts(); // 示例11: 遍历所有文本
example12_stringMethods(); // 示例12: JavaScript String类方法
example13_opencvOCR(); // 示例13: OpenCV找图找字
example14_safeOCR(); // 示例14: 安全OCR操作(带重试机制)
example15_comprehensiveFlow(); // 示例15: 综合自动化流程
printl("\n========== 所有示例执行完毕 ==========");
}
function example1_getAllString() {
printl("【示例1】getAllString - 获取所有识别的文本");
try {
var ocrResult = screen.ocr(0, 0, 1, 1);
var allText = ocrResult.getAllString();
printl("识别到的所有文本: " + allText);
printl("文本长度: " + allText.length);
} catch (e) {
printl("错误: " + e);
}
printl("");
}
function example2_getAllDetect() {
printl("【示例2】getAllDetect - 获取所有识别的目标对象");
try {
var ocrResult = screen.ocr(0, 0, 1, 1);
var detects = ocrResult.getAllDetect();
printl("识别到的目标数量: " + detects.length);
for (var i = 0; i < Math.min(5, detects.length); i++) {
printl("目标" + i + ": " + detects[i].text);
}
} catch (e) {
printl("错误: " + e);
}
printl("");
}
function example3_findText() {
printl("【示例3】findText - 精确查找特定文本");
try {
var ocrResult = screen.ocr(0, 0, 1, 1);
var target = ocrResult.findText("确定", [0, 0, 1, 1]);
if (target != null) {
printl("找到文本: " + target.text);
printl("位置: x=" + target.x + ", y=" + target.y);
printl("尺寸: width=" + target.width + ", height=" + target.height);
} else {
printl("未找到文本 '确定'");
}
} catch (e) {
printl("错误: " + e);
}
printl("");
}
function example4_findIncludeText() {
printl("【示例4】findIncludeText - 查找包含特定文本的单个目标");
try {
var ocrResult = screen.ocr(0, 0, 1, 1);
var target = ocrResult.findIncludeText("设置", [0, 0, 1, 1]);
if (target != null) {
printl("找到包含 '设置' 的文本: " + target.text);
} else {
printl("未找到包含 '设置' 的文本");
}
} catch (e) {
printl("错误: " + e);
}
printl("");
}
function example5_findIncludeTexts() {
printl("【示例5】findIncludeTexts - 查找包含特定文本的多个目标");
try {
var ocrResult = screen.ocr(0, 0, 1, 1);
var targets = ocrResult.findIncludeTexts("按钮", [0, 0, 1, 1]);
printl("找到包含 '按钮' 的文本数量: " + targets.length);
for (var i = 0; i < Math.min(3, targets.length); i++) {
printl("目标" + i + ": " + targets[i].text);
}
} catch (e) {
printl("错误: " + e);
}
printl("");
}
function example6_findTextWithRegex() {
printl("【示例6】findTextWithRegex - 正则表达式查找");
try {
var ocrResult = screen.ocr(0, 0, 1, 1);
var targets = ocrResult.findTextWithRegex("\\d+", [0, 0, 1, 1]);
printl("找到包含数字的文本数量: " + targets.length);
for (var i = 0; i < Math.min(3, targets.length); i++) {
printl("数字文本" + i + ": " + targets[i].text);
}
var diamondTargets = ocrResult.findTextWithRegex("领.*?钻石", [0, 0, 1, 1]);
if (diamondTargets != null && diamondTargets.length > 0) {
printl("找到匹配 '领.*?钻石' 的文本: " + diamondTargets[0].text);
}
} catch (e) {
printl("错误: " + e);
}
printl("");
}
function example7_getJSON() {
printl("【示例7】getJSON - 获取JSON格式结果");
try {
var ocrResult = screen.ocr(0, 0, 1, 1);
var json = ocrResult.getJSON();
printl("JSON结果长度: " + json.length);
printl("JSON前100字符: " + json.substring(0, 100));
} catch (e) {
printl("错误: " + e);
}
printl("");
}
function example8_lockOCR() {
printl("【示例8】lockOCR/unLock - OCR缓存锁定");
try {
OCR.lockOCR();
printl("OCR结果已锁定");
var image = screen.screenShotFull();
var result1 = image.ocr(0, 0, 1, 1);
var text1 = result1.getAllString();
printl("第一次识别文本长度: " + text1.length);
var result2 = image.ocr(0, 0, 1, 1);
var target = result2.findIncludeText("设置", [0, 0, 1, 1]);
if (target != null) {
printl("在锁定状态下找到文本: " + target.text);
}
image.close();
OCR.unLock();
printl("OCR结果已解锁");
} catch (e) {
printl("错误: " + e);
try {
OCR.unLock();
} catch (unlockError) {
printl("解锁错误: " + unlockError);
}
}
printl("");
}
function example9_clickRandom() {
printl("【示例9】clickRandom - 随机位置点击");
try {
var ocrResult = screen.ocr(0, 0, 1, 1);
var target = ocrResult.findText("确定", [0, 0, 1, 1]);
if (target != null) {
printl("找到文本: " + target.text);
printl("方式1: 使用clickRandom()在文本区域内随机点击");
target.clickRandom();
printl("点击成功");
} else {
printl("未找到文本 '确定'");
}
} catch (e) {
printl("错误: " + e);
}
printl("");
}
function example10_regionOCR() {
printl("【示例10】区域OCR识别");
try {
var region = [0.2, 0.3, 0.8, 0.7];
printl("识别区域: [" + region.join(", ") + "]");
var ocrResult = screen.ocr(region[0], region[1], region[2], region[3]);
var allText = ocrResult.getAllString();
printl("区域内识别到的文本长度: " + allText.length);
var target = ocrResult.findText("下一步", region);
if (target != null) {
printl("在区域内找到文本: " + target.text);
} else {
printl("区域内未找到文本 '下一步'");
}
} catch (e) {
printl("错误: " + e);
}
printl("");
}
function example11_iterateTexts() {
printl("【示例11】遍历所有文本");
try {
var ocrResult = screen.ocr(0, 0, 1, 1);
var allDetects = ocrResult.getAllDetect();
printl("总共识别到 " + allDetects.length + " 个文本元素");
for (var i = 0; i < Math.min(5, allDetects.length); i++) {
var detect = allDetects[i];
printl("文本" + i + ": " + detect.text);
printl(" 位置: [" + detect.x + ", " + detect.y + ", " + detect.width + ", " + detect.height + "]");
if (detect.text.includes("取消")) {
printl(" 找到包含 '取消' 的文本,准备点击");
detect.clickRandom();
printl(" 点击成功");
break;
}
}
} catch (e) {
printl("错误: " + e);
}
printl("");
}
function example12_stringMethods() {
printl("【示例12】JavaScript String类方法");
var text = "Hello World";
printl("原始文本: " + text);
printl("charAt(0): " + text.charAt(0));
printl("indexOf('o'): " + text.indexOf("o"));
printl("lastIndexOf('o'): " + text.lastIndexOf("o"));
printl("length: " + text.length);
printl("match(/[a-z]/g): " + text.match(/[a-z]/g));
printl("replace('Hello', 'Hi'): " + text.replace("Hello", "Hi"));
printl("replaceAll('l', 'L'): " + text.replaceAll("l", "L"));
printl("split(' '): " + text.split(" "));
printl("startsWith('He'): " + text.startsWith("He"));
printl("substr(0, 5): " + text.substr(0, 5));
printl("substring(0, 5): " + text.substring(0, 5));
printl("trim(): '" + " Hello ".trim() + "'");
printl("");
}
function example13_opencvOCR() {
printl("【示例13】OpenCV OCR");
try {
var ocr1 = opencv.OCREx('图色994166.cv');
if (ocr1 != null) {
printl("OpenCV OCR识别成功");
var allText = ocr1.getAllString();
printl("识别到的文本: " + allText);
var targetText = ocr1.findIncludeText("确定");
if (targetText != null) {
printl("找到包含 '确定' 的文本");
targetText.clickRandom();
printl("点击成功");
} else {
printl("未找到包含 '确定' 的文本");
}
} else {
printl("OpenCV OCR初始化失败");
}
} catch (e) {
printl("错误: " + e);
}
printl("");
}
function example14_safeOCR() {
printl("【示例14】安全OCR操作(带重试机制)");
function safeFindText(targetText, region, maxRetries) {
for (var retry = 0; retry < maxRetries; retry++) {
try {
printl("查找文本: " + targetText + " (尝试 " + (retry + 1) + "/" + maxRetries + ")");
var ocrResult = screen.ocr(region[0], region[1], region[2], region[3]);
var detect = ocrResult.findIncludeText(targetText, region);
if (detect) {
printl("找到文本: " + targetText);
return detect;
}
if (retry < maxRetries - 1) {
printl("未找到,等待重试...");
sleep(1000);
}
} catch (error) {
printl("查找出错: " + error);
if (retry < maxRetries - 1) {
OCR.unLock();
sleep(2000);
}
}
}
printl("未找到文本: " + targetText);
return null;
}
var detect = safeFindText("设置", [0, 0, 1, 1], 2);
if (detect) {
printl("安全查找成功");
}
printl("");
}
function example15_comprehensiveFlow() {
printl("【示例15】综合自动化流程");
try {
printl("步骤1: 查找并点击 '设置'");
var ocrResult1 = screen.ocr(0, 0, 1, 1);
var settingTarget = ocrResult1.findIncludeText("设置", [0, 0, 1, 1]);
if (settingTarget != null) {
settingTarget.clickRandom();
printl("点击设置成功");
sleep(2000);
printl("步骤2: 查找并点击 '通用'");
var ocrResult2 = screen.ocr(0, 0, 1, 1);
var generalTarget = ocrResult2.findText("通用", [0, 0, 1, 1]);
if (generalTarget != null) {
generalTarget.clickRandom();
printl("点击通用成功");
sleep(2000);
printl("步骤3: 查找数字");
var ocrResult3 = screen.ocr(0, 0, 1, 1);
var numberTargets = ocrResult3.findTextWithRegex("\\d+", [0, 0, 1, 1]);
if (numberTargets != null && numberTargets.length > 0) {
printl("找到 " + numberTargets.length + " 个数字");
printl("第一个数字: " + numberTargets[0].text);
}
} else {
printl("未找到文本 '通用'");
}
} else {
printl("未找到包含 '设置' 的文本");
}
} catch (e) {
printl("综合流程错误: " + e);
}
printl("");
}
main();
复制代码
欢迎光临 自动发帖软件 (http://www.fatiegongju.com/)
Powered by Discuz! X3.2