sleep(3000);
log('开始截屏');
const img = captureScreen();
toastLog('开始识别');
const textResult = ocr.recognizeText(img);
toastLog('原始图片识别结果:' + textResult);
const cimg = captureScreen();
const grayImg = images.grayscale(cimg); // 转为灰度图,提升识别效果
const textResultGrayscale = ocr.recognizeText(grayImg);
toastLog('灰度图识别结果:' + textResultGrayscale);
//尝试点击操作
while (!click('军中行政区'))
sleep(1000);
//二次识别
log('开始截屏');
const img = captureScreen();
toastLog('开始识别');
const textResult = ocr.recognizeText(img);
toastLog('原始图片识别结果:' + textResult);
const cimg = captureScreen();
const grayImg = images.grayscale(cimg); // 转为灰度图,提升识别效果
const textResultGrayscale = ocr.recognizeText(grayImg);
toastLog('灰度图识别结果:' + textResultGrayscale);
//二次点击
while (!click('分享'))
sleep(1000);
汇报错,请修复

已存档
HAMI_9720382888 · 26 天前
第 1 条补充
·
26 天前

如何进行点击图片功能

第 2 条补充
·
26 天前

有没有更简单的图片识别点击功能?

回答

Hamibot AI
1
· 26 天前

你的脚本中存在一些问题,以下是修复后的版本:

// 文档地址 https://docs.hamibot.com/
sleep(3000);
log('开始截屏');
const img = captureScreen();
toastLog('开始识别');
const textResult = ocr.recognizeText(img);
toastLog('原始图片识别结果:' + textResult);
const cimg = captureScreen();
const grayImg = images.grayscale(cimg); // 转为灰度图,提升识别效果
const textResultGrayscale = ocr.recognizeText(grayImg);
toastLog('灰度图识别结果:' + textResultGrayscale);
//尝试点击操作
while (!click('军中行政区')) 
    sleep(1000);
//二次识别
log('开始截屏');
const img2 = captureScreen();
toastLog('开始识别');
const textResult2 = ocr.recognizeText(img2);
toastLog('原始图片识别结果:' + textResult2);
const cimg2 = captureScreen();
const grayImg2 = images.grayscale(cimg2); // 转为灰度图,提升识别效果
const textResultGrayscale2 = ocr.recognizeText(grayImg2);
toastLog('灰度图识别结果:' + textResultGrayscale2);
//二次点击
while (!click('分享'))
    sleep(1000);

修改说明:

  1. 修复了变量重复定义的问题(将第二个 img 改为 img2,第二个 cimg 改为 cimg2,第二个 grayImg 改为 grayImg2,第二个 textResult 改为 textResult2,第二个 textResultGrayscale 改为 textResultGrayscale2)。
  2. 保持了原有的逻辑和功能。

补充回答 1

你可以使用 Hamibot 提供的图像识别功能来实现点击图片的功能。以下是一个简单的示例代码,用于在屏幕上查找特定的图片并点击它:

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

// 查找小图在大图中的位置
var point = images.findImage(img, template);

if (point != null) {
    // 如果找到了图片,点击该位置
    click(point.x, point.y);
} else {
    // 如果未找到图片,输出提示信息
    toast("未找到指定的图片");
}

说明:

  1. images.read(path):读取指定路径的图片。
  2. images.findImage(img, template, options):在大图 img 中查找小图 template 的位置。options 是可选参数,可以设置相似度、查找区域等。
  3. click(x, y):点击指定的坐标位置。

注意事项:

  • 确保图片路径正确,并且图片已经存储在设备上。
  • 如果图片无法找到,可以调整 threshold 参数提高相似度要求。
  • 如果需要在特定区域内查找图片,可以使用 region 参数指定查找区域。

如果你需要更复杂的图像处理或点击逻辑,可以根据具体需求进行调整。


补充回答 2

可以使用 Hamibot 提供的更简洁的图片识别点击功能。以下是一个简单的示例代码,用于在屏幕上查找特定的图片并点击它:

// 请求截图权限
auto.waitFor();

// 截图并查找图片
var img = captureScreen();
var point = findImage(img, images.read('/sdcard/小图.png'), {
    threshold: 0.8, // 设置相似度
    region: [0, 0, 1080, 1920] // 设置查找区域
});

if (point != null) {
    // 如果找到了图片,点击该位置
    click(point.x, point.y);
} else {
    // 如果未找到图片,输出提示信息
    toast("未找到指定的图片");
}

说明:

  1. auto.waitFor():请求截图权限。
  2. captureScreen():截取当前屏幕。
  3. findImage(img, template, options):在大图 img 中查找小图 template 的位置。options 是可选参数,可以设置相似度、查找区域等。
  4. click(x, y):点击指定的坐标位置。

注意事项:

  • 确保图片路径正确,并且图片已经存储在设备上。
  • 如果图片无法找到,可以调整 threshold 参数提高相似度要求。
  • 如果需要在特定区域内查找图片,可以使用 region 参数指定查找区域。

这个方法更加简洁,适合快速实现图片识别和点击功能。

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