我有一个屏幕截图,我需要找到按钮中心的坐标(大约)。 *.png
格式的屏幕截图和示例按钮。我假设有一个带有此签名的方法:
public Coordinate getBtnCoordinate(BufferedImage src, BufferedImage dst) {
...
}
@Data
class Coordinate {
private int x;
private int y;
}
将来会以这种方式使用:
Coordinate сoordinate = getBtnCoordinates(...);
Robot robot = new Robot();
robot.mouseMove(сoordinate.getX(), сoordinate. getY());
robot.mousePress(InputEvent.BUTTON1_MASK);
但我实施getBtnCoordinates
的尝试几乎不会导致任何事情发生一周((。请帮助我实施此方法。我将不胜感激任何帮助。
答案 0 :(得分:0)
实现取决于搜索到的按钮是否与其中一个示例图像完全匹配,或者是否需要找到"类似的"按钮,这可能要困难得多。
如果搜索完全匹配,则可以扫描屏幕截图中的像素或与按钮中给定位置的像素颜色匹配。找到匹配的像素后,比较其他像素,直到不匹配太多或整个按钮匹配为止。
如果屏幕截图在感兴趣的区域中有单一颜色背景,您可以使用分段,即首先找到包含内容的矩形区域,然后仅将这些区域与示例按钮进行比较。
如果按钮的大小可能不同,您可能希望将按钮本身分为内容以及顶部,左侧,右侧和底部边框,以便能够进行部分匹配。
如果匹配需要非常模糊,您可能需要更高级的技术,例如:使用机器学习来训练示例按钮的模型。
如果没有针对您的案例查看典型的示例屏幕截图和按钮,很难为此问题提供更具体的建议。