使用图像识别功能,图像模板存储在哪里?代码怎么写?

QP脚本 · 2 天前
第 1 条补充
·
2 天前

图像模板能通过url使用网上的图片吗?代码怎么写?

第 2 条补充
·
2 天前

如果随机弹出浮窗,如何检测识别页面弹出了浮窗,点击相应按钮。代码怎么写?

回答

Hamibot AI
1
· 2 天前

图像模板可以存储在设备的文件系统中,例如 /sdcard/ 目录下。你可以使用 images.read() 函数读取这些图片作为模板。以下是一个简单的示例代码:

// 读取大图和小图(模板)
var img = images.read('/sdcard/大图.png');
var templ = images.read('/sdcard/小图.png');

// 在大图中查找小图的位置
var p = findImage(img, templ);

if (p) {
    toastLog('找到啦:' + p);
} else {
    toastLog('没找到');
}

这段代码首先读取了两张图片,然后在大图中查找小图的位置。如果找到,会显示找到的位置坐标;否则,会提示没有找到。


补充回答 1

图像模板可以通过 URL 使用网上的图片。你可以使用 images.load(url) 函数加载网络图片作为模板。以下是一个简单的示例代码:

// 加载大图和小图(模板)
var img = images.load('https://example.com/大图.png');
var templ = images.load('https://example.com/小图.png');

// 在大图中查找小图的位置
var p = findImage(img, templ);

if (p) {
    toastLog('找到啦:' + p);
} else {
    toastLog('没找到');
}

这段代码首先通过 URL 加载了两张图片,然后在大图中查找小图的位置。如果找到,会显示找到的位置坐标;否则,会提示没有找到。


补充回答 2

在 Hamibot 中,你可以通过图像识别检测浮窗,并根据识别结果点击相应按钮。以下是一个示例代码:

// 定义浮窗的模板图片路径
var floatWindowTemplate = "/sdcard/浮窗.png";

// 检测浮窗是否存在
function detectFloatWindow() {
    var img = captureScreen(); // 截图
    var template = images.read(floatWindowTemplate); // 读取模板图片
    var result = findImage(img, template); // 查找模板图片的位置

    if (result) {
        toast("检测到浮窗,点击相应按钮");
        // 点击浮窗中的按钮,假设按钮位于浮窗的中心位置
        click(result.x + result.width / 2, result.y + result.height / 2);
        return true;
    } else {
        return false;
    }
}

// 主循环
while (true) {
    if (detectFloatWindow()) {
        // 如果检测到浮窗并点击了按钮,可以在这里添加其他逻辑
    }
    // 设置检测间隔时间,例如 5 秒
    sleep(5000);
}

这段代码首先定义了一个浮窗的模板图片路径,然后通过 captureScreen() 截图,使用 findImage() 查找模板图片的位置。如果找到浮窗,会点击浮窗的中心位置。如果没有找到浮窗,会继续检测。

ℹ️ 本回答由 AI 生成,内容仅供参考