使用图像识别功能,图像模板存储在哪里?代码怎么写?
第 1 条补充
· 2 天前
图像模板能通过url使用网上的图片吗?代码怎么写?
第 2 条补充
· 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 生成,内容仅供参考