【发布时间】:2014-03-04 13:41:38
【问题描述】:
我正在寻找一种使用 matlab 在屏幕上查找按钮位置的方法。现在我为此创建了以下代码: 使用此代码,我制作了我的计算机的屏幕截图,将其加载到 matlab 中并使其翻倍。 然后对目标图像执行相同的操作,即需要在我的屏幕上找到的图像,然后尝试将其匹配以找到矩阵到总矩阵并显示该图像左上角的坐标。 问题在于,使用这种方法和 1920*1080 的屏幕分辨率,完成整个过程大约需要 15 分钟。
所以我的问题是,有没有一种更简单/更快的方法可以在我的屏幕上或另一个图像中找到图像的坐标(或中心)?到目前为止,即使使用图像处理工具箱,我也没有找到。
clear all
close all
robo = java.awt.Robot;
t = java.awt.Toolkit.getDefaultToolkit();
rectangle = java.awt.Rectangle(t.getScreenSize());
image = robo.createScreenCapture(rectangle);
filehandle = java.io.File('screencapture.png');
javax.imageio.ImageIO.write(image,'png',filehandle);
scrimg=im2double(imread('screencapture.png')); % screenshot
sfimg=im2double(imread('searchfor.png')); % image to look for
[mA,nA,zA] = size(sfimg);
[mB,nB,zB] = size(scrimg);
F = zeros((mB-mA+1)*(nB-nA+1),3);
k = 0;
for p = 1:mB-mA+1
for q = 1:nB-nA+1
for r = 1:zB-zA+1
iets=[p q r];
disp(iets)
if all(all(sfimg==scrimg(p:p+mA-1,q:q+nA-1,r:r+zA-1)))
k = k + 1;
F(k,:) = [p,q,r];
end
end
end
end
F(k+1:end,:) = [];
【问题讨论】:
-
看看
xcorr2。
标签: image matlab find coordinates