找图
image.findImage()
找图。在大图片image中查找小图片template的位置(模块匹配)
找到时返回位置坐标区域(Rect),找不到时返回null。
@param image 大图片
@param template 小图片(模板)
@param x 找图区域 x 起始坐标
@param y 找图区域 y 起始坐标
@param ex 终点X坐标
@param ey 终点Y坐标
@param threshold 图片相似度。取值范围为0~1的浮点数。默认值为0.9。
@param limit 限制结果的数量,如果要找到1个,就填写1,如果是多个请填写多个
@return Rect 区域坐标对象或者null
function main() { var request = image.requestScreenCapture(10000,0); if (request){ toast("申请成功"); }else { toast("申请失败"); exit(); } sleep(5000); //从工程目录下res文件夹下读取sms.png文件 var sms=readResAutoImage("sms.png"); //在当前屏幕中查找,并且限制只查找一个 var point = image.findImageEx( sms, 1); logd("point "+point); //抓取屏幕 var aimage = image.captureFullScreen(); logd("aimage "+aimage); if (aimage != null) { //在图片中查找 point = image.findImage(aimage, sms,0,0,0,0,1, 1); logd("point "+point); } } main();
image.findImageEx()
找图。在当前屏幕中查找小图片template的位置(模块匹配)
找到时返回位置坐标区域(Rect),找不到时返回null。
@param template 小图片(模板)
@param x 找图区域 x 起始坐标
@param y 找图区域 y 起始坐标
@param ex 终点X坐标
@param ey 终点Y坐标
@param threshold 图片相似度。取值范围为0~1的浮点数。默认值为0.9。
@param limit 限制结果的数量,如果要找到1个,就填写1,如果是多个请填写多个
@return Rect 区域坐标对象数组或者null
function main() { var request = image.requestScreenCapture(10000,0); if (request){ toast("申请成功"); }else { toast("申请失败"); exit(); } sleep(5000); //从工程目录下res文件夹下读取sms.png文件 var sms=readResAutoImage("sms.png"); //在当前屏幕中查找,并且限制只查找一个 var point = image.findImageEx(sms,0,0,0,0,1, 1); logd("point "+point); } main();
image.matchTemplate()
OpenCV模板匹配封装
@param image 大图片
@param template 小图片(模板)
@param weakThreshold 图片相似度。取值范围为0~1的浮点数。默认值为0.9。
@param threshold 图片相似度。取值范围为0~1的浮点数。默认值为0.9。
@param rect 找图区域。参见findColor函数关于 rect 的说明。
@param maxLevel 默认为-1,一般而言不必修改此参数。不加此参数时该参数会根据图片大小自动调整。找图算法是采用图像金字塔进行的, level参数表示金字塔的层次, level越大可能带来越高的找图效率,但也可能造成找图失败(图片因过度缩小而无法分辨)或返回错误位置。因此,除非您清楚该参数的意义并需要进行性能调优,否则不需要用到该参数。
@param limit 限制结果的数量,如果要找到1个,就填写1,如果是多个请填写多个
@return Match集合 或者null
function main() { var req = image.requestScreenCapture(10000,0); if (!req) { req = image.requestScreenCapture(10000,0); } if (!req) { toast("申请权限失败"); return; } var aimage = image.captureFullScreen(); if (aimage != null) { var temp = readResAutoImage("tmp.png"); var rectp= new Rect(); rectp.left=10; rectp.top=100; rectp.right=100; rectp.bottom=400; var x = image.matchTemplate(aimage, temp,0.9,0.9,rectp,-1,1); logd(x); } } main();
image.matchTemplateEx()
OpenCV模板匹配封装,在当前屏幕截图中进行匹配
@param template 小图片(模板)
@param weakThreshold 图片相似度。取值范围为0~1的浮点数。默认值为0.9。
@param threshold 图片相似度。取值范围为0~1的浮点数。默认值为0.9。
@param rect 找图区域。参见findColor函数关于 rect 的说明。
@param maxLevel 默认为-1,一般而言不必修改此参数。不加此参数时该参数会根据图片大小自动调整。找图算法是采用图像金字塔进行的, level参数表示金字塔的层次, level越大可能带来越高的找图效率,但也可能造成找图失败(图片因过度缩小而无法分辨)或返回错误位置。因此,除非您清楚该参数的意义并需要进行性能调优,否则不需要用到该参数。
@param limit 限制结果的数量,如果要找到1个,就填写1,如果是多个请填写多个
@return Match集合 或者null
function main() { var req = image.requestScreenCapture(10000,0); if (!req) { req = image.requestScreenCapture(10000,0); } if (!req) { toast("申请权限失败"); return; } var aimage = image.captureFullScreen(); if (aimage != null) { var temp = readResAutoImage("tmp.png"); var rectp= new Rect(); rectp.left=10; rectp.top=100; rectp.right=100; rectp.bottom=400; var x = image.matchTemplateEx( temp,0.9,0.9,rectp,-1,1); logd(x); } } main();
image.readImage()
读取在路径path的图片文件并返回一个{@link AutoImage}对象。
如果文件不存在或者文件无法解码则返回null。
@param path 图片路径
@return AutoImage 对象或者null
function main() { var autoimg = image.readImage("/sdcard/a.png"); } main();
image.readBitmap()
读取在路径path的图片文件并返回一个{@link AutoImage}对象。如果文件不存在或者文件无法解码则返回null。
@param path 图片路径
@return android的bitmap对象或者null
function main() { var autoimg = image.readBitmap("/sdcard/a.png"); } main();
二值化
image.binaryzation()
对AutoImage图片进行二值化
@param img AutoImage图片对象
@param type 二值化类型,一般写1即可
- 0 灰度值大于阈值为最大值,其他值为
- 1 灰度值大于阈值为0,其他值为最大值
- 2 灰度值大于阈值的为阈值,其他值不变
- 3 灰度值大于阈值的不变,其他值为0
- 4 灰度值大于阈值的为零,其他值不变
- 7 暂不支持
- 8 大津法自动寻求全局阈值
- 16 三角形法自动寻求全局阈值
@param threshold 二值化系数,0 ~ 255
@return AutoImage 对象或者null
function main() { var req = image.requestScreenCapture(10000,0); if (!req) { req = image.requestScreenCapture(10000,0); } if (!req) { toast("申请权限失败"); return; } for (var i = 0; i < 1000; i++) { sleep(1000); var s = new Date().getTime(); var d = image.captureFullScreenEx(); if (d) { var saved =image.saveTo(d,"/sdcard/testb.png"); var s = new Date().getTime(); var bd = image.binaryzation(d,1,200); logd("time "+(new Date().getTime()-s)) logd(bd.uuid); if (bd) { var saved =image.saveTo(bd,"/sdcard/testb2.png"); logd("saved "+saved) exit() } } } } main();
image.binaryzationBitmap()
对安卓的 Bitmap 图片进行二值化
@param bitmap Bitmap 图片对象
@param type 二值化类型,一般写1即可
- 0 灰度值大于阈值为最大值,其他值为
- 1 灰度值大于阈值为0,其他值为最大值
- 2 灰度值大于阈值的为阈值,其他值不变
- 3 灰度值大于阈值的不变,其他值为0
- 4 灰度值大于阈值的为零,其他值不变
- 7 暂不支持
- 8 大津法自动寻求全局阈值
- 16 三角形法自动寻求全局阈值
@param threshold 二值化系数,0 ~ 255
@return Bitmap 对象或者null
function main() { var req = image.requestScreenCapture(10000,0); if (!req) { req = image.requestScreenCapture(10000,0); } if (!req) { toast("申请权限失败"); return; } for (var i = 0; i < 1000; i++) { sleep(1000); var s = new Date().getTime(); var d = image.captureScreenBitmap("jpg",100,100,200,300,100); if (d) { var s = new Date().getTime(); var bd = image.binaryzationBitmap(d,1,200); logd("time "+(new Date().getTime()-s)) logd(bd); if (bd) { exit() } } } } main();