我尝试使用Tasker和AutoTools插件为Android游戏编写自动化程序。到现在为止还可以,但是我需要捕获屏幕截图,并需要根据我的需要对其进行解释。
这正是我所需要的;
某些文本在游戏中很重要,我想在屏幕上的任何位置单击它。因此,我认为此任务需要OCR。我遵循一些解决方案,但每次都会失败或卡住。让我解释一下我尝试过的解决方案。
以下解决方案1:
以下解决方案2:
我搜索OCR解决方案并找到AutoTools(Tasker插件)
创建一个任务并截图并使用AutoTools OCR方法对其进行解释。没关系。 AutoTools OCR成功读取了图像文件中的文本。
但是我再次陷入困境。因为我成功地从图像文件中读取了一个文本,但是我不知道重要文本的x y坐标。
这时有什么建议?
我应该学习android并编写自己的应用程序吗?
答案 0 :(得分:2)
您应该检出ocr-reader Google示例。它运行起来很快,而获得所需的东西也不难。您需要做的是修改示例附带的OcrDetectorProcess
,将文本分解成单个单词,然后可以轻松地计算每个单词的边界和中心点。这是一些入门的代码:
@Override
public void receiveDetections(Detector.Detections<TextBlock> detections) {
mGraphicOverlay.clear();
// Get all detected items.
SparseArray<TextBlock> items = detections.getDetectedItems();
for (int i = 0; i < items.size(); ++i) {
TextBlock item = items.valueAt(i);
// Get individual lines in each item.
List<Line> lines = (List<Line>) item.getComponents();
for (Line line : lines) {
// Get individual "words" in each line.
List<Element> elements = (List<Element>) line.getComponents();
for (Element e : elements) {
// Now get the position of each element.
Rect rect = e.getBoundingBox();
Point[] points = e.getCornerPoints();
int centerX = (points[0].x + points[2].x) / 2;
int centerY = (points[0].y + points[2].y) / 2;
// DO STUFF
}
}
}
}
答案 1 :(得分:0)
我与编写“ AutoTools” Tasker插件的开发人员联系。
他/她在插件中添加了一些功能并对其进行了解决。
插入,使用OCR授予的图像进行解释,现在返回单词和每个单词的xy中心。
如果有人使用Android和Tasker App的此功能进行搜索,请访问this forum topic链接。它非常有用。