matchTemplateExAll 屏幕全分辨率模板找图
<p>[TOC]</p>
<h5>简要描述</h5>
<ul>
<li>
<p>对matchTemplateEx进行再次封装,自动检测透明图,自动适应全分辨率。</p>
</li>
<li>插件内部对返回的结果的相似度,已经从大到小排列,通常使用第1个成员目标就行了</li>
</ul>
<h5>参数</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">x1</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">double</td>
<td>左上角x,绝对坐标\屏幕比例值( 0 ~ 1 )。</td>
</tr>
<tr>
<td style="text-align: left;">y1</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">double</td>
<td>左上角y,绝对坐标\屏幕比例值( 0 ~ 1 )。</td>
</tr>
<tr>
<td style="text-align: left;">x2</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">double</td>
<td>右下角x,绝对坐标\屏幕比例值( 0 ~ 1 )</td>
</tr>
<tr>
<td style="text-align: left;">y2</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">double</td>
<td>右下角y,持绝对坐标\屏幕比例值( 0 ~ 1 )</td>
</tr>
<tr>
<td style="text-align: left;">imgPath</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">all</td>
<td>输入图像。可以为: Mat、bitmap、EC资源路径、SD卡路径。全支持。</td>
</tr>
<tr>
<td style="text-align: left;">sim</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">double</td>
<td>相似度( 0 ~ 1 )</td>
</tr>
<tr>
<td style="text-align: left;">step</td>
<td style="text-align: left;">(可选)</td>
<td style="text-align: left;">int</td>
<td>高斯步长 可空,默认=10</td>
</tr>
<tr>
<td style="text-align: left;">num</td>
<td style="text-align: left;">(可选)</td>
<td style="text-align: left;">int</td>
<td>高斯次数 可空,默认=5</td>
</tr>
<tr>
<td style="text-align: left;">mode</td>
<td style="text-align: left;">(可选)</td>
<td style="text-align: left;">int</td>
<td>全分适配方向 可空,默认=0</br>0、放大和缩小(全自动模式)</br>1、放大,向高分辨率适配</br>-1、缩小,向低分辨率适配</td>
</tr>
<tr>
<td style="text-align: left;">depth</td>
<td style="text-align: left;">(可选)</td>
<td style="text-align: left;">bool</td>
<td>深度找图,默认=false 。如果为true,那么将枚举所有可能的目标,同时函数执行时间会变长</td>
</tr>
<tr>
<td style="text-align: left;">Scale</td>
<td style="text-align: left;">(可选)</td>
<td style="text-align: left;">double</td>
<td>缩放值(0~1),找图前先缩小图像可提高效率。但可能会找不到图。 默认=0 不缩放,找颜色单调的图片时,不应该对其进行缩放处理。</td>
</tr>
</tbody>
</table>
<h5>返回参数说明</h5>
<p><code>JSON | null</code></p>
<p>其中每一个元素是由5个浮点数成员组成,分别为(初学者最好打印出来):
x1,//左上角x
y1,//左上角y
x2,//右下角x
y2,//右下角y
zx,//中心x
zy,//中心y
sim,相似度</p>
<p>以下是输出样例。返回结果已根据范围进行过计算,输出的坐标可直接用点击函数点击。</p>
<p>[
{"x1":626,"y1":663,"x2":695,"y2":738,"zx":660.5,"zy":700.5,"sim":0.9509931478936996},
{"x1":877,"y1":968,"x2":946,"y2":1043,"zx":911.5,"zy":1005.5,"sim":0.9400992024116669},
{"x1":143,"y1":1262,"x2":212,"y2":1337,"zx":177.5,"zy":1299.5,"sim":0.9195060713055965}
]</p>
<h5>示例(返回多目标)</h5>
<pre><code class="language-java"> //全分辨率模板找图。
logd("申请截图权限",image.requestScreenCapture(10000,1));
//找图
var arr=cvImg.matchTemplateExAll(0.1,0.1,0.99,0.99,"/sdcard/Pictures/t9.png",0.6,10,5);
logd(JSON.stringify(arr))
//以下仅为了演示效果
var bitmap_全屏=image.captureScreenBitmap("png",0,0,device.getScreenWidth(),device.getScreenHeight(),100);
var mat_全屏=cvImg.loadFromBitmap(bitmap_全屏);
//画出位置
for(let i=0;i<arr.length;i++){
cvImg.rectangle(mat_全屏,arr[i].x1,arr[i].y1,arr[i].x2,arr[i].y2,[255,0,0,0],2);
}
//输出图像文件,看结果用
cvImg.toFile(mat_全屏,"/sdcard/Pictures/tem3.jpg");</code></pre>
<p>原图
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=0b072d1389edad5a552f22c5e80e3546&file=file.png" alt="" /></p>
<p>模板图
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=694f7844fa06b80583b84d45fcbb5e7d&file=file.png" alt="" /></p>
<p>结果图
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=56dfd2503c48fd22bea19b10dc821a61&file=file.png" alt="" /></p>