cv图像识别

安卓opencv全分辨率找图


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>[ {&quot;x1&quot;:626,&quot;y1&quot;:663,&quot;x2&quot;:695,&quot;y2&quot;:738,&quot;zx&quot;:660.5,&quot;zy&quot;:700.5,&quot;sim&quot;:0.9509931478936996}, {&quot;x1&quot;:877,&quot;y1&quot;:968,&quot;x2&quot;:946,&quot;y2&quot;:1043,&quot;zx&quot;:911.5,&quot;zy&quot;:1005.5,&quot;sim&quot;:0.9400992024116669}, {&quot;x1&quot;:143,&quot;y1&quot;:1262,&quot;x2&quot;:212,&quot;y2&quot;:1337,&quot;zx&quot;:177.5,&quot;zy&quot;:1299.5,&quot;sim&quot;: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&lt;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&amp;file=file.png" alt="" /></p> <p>模板图 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=694f7844fa06b80583b84d45fcbb5e7d&amp;file=file.png" alt="" /></p> <p>结果图 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=56dfd2503c48fd22bea19b10dc821a61&amp;file=file.png" alt="" /></p>

页面列表

ITEM_HTML