cv图像识别

安卓opencv全分辨率找图


paddle_detect 目标检测

<p>[TOC]</p> <h5>简要描述</h5> <ul> <li>百度飞浆目标检测。 【v2.1.3】以上可用。</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;">image</td> <td style="text-align: left;">必须</td> <td style="text-align: left;">String\bitmap</td> <td>支持输入bitmp、图片文件路径。</td> </tr> <tr> <td style="text-align: left;">confidence</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;">ver</td> <td style="text-align: left;">(可选)</td> <td style="text-align: left;">int</td> <td>版本。0=最新版本 1=旧的兼容版本 默认=0,如果出现兼容问题可尝试切换</td> </tr> </tbody> </table> <h5>返回值</h5> <p>String,一个json文本。返回示例如下:</p> <pre><code class="language-java">[ { "text": "person", "confidence": 0.20899564027786255, "x1": 17, "y1": 736, "x2": 284, "y2": 1206 }, { "text": "book", "confidence": 0.20443083345890045, "x1": 570, "y1": 329, "x2": 1041, "y2": 1213 } ]</code></pre> <p>text:表示识别的文本内容。 confidence:表示信度、相似度。 x1:目标左上角坐标x y1:目标左上角坐标y x2:目标右下角坐标x y2:目标右下角坐标y</p> <p>这个返回值转换成JSON后,可以使用本插件 drawRect 方法打印显示到手机屏幕上。</p> <h5>目标检测在游戏中应用例子</h5> <pre><code class="language-java">/**入口**/ function main() { //0、脚本停止回调,清除绘制。 cvImg.drawRectClear(); setStopCallback(function (){//停止脚本清除显示框。 cvImg.drawRectClear(); loge("脚本已停止!") }); logd("开始执行脚本..."); //1、申请截图权限 logd("申请截图权限",image.requestScreenCapture(10000,0)); //2、加载百度飞浆库(该操作,脚本开头执行一次即可。) var ret=cvImg.paddle_loadLib("/sdcard/lib.apk",""); if(!ret){ loge(cvImg.paddle_getErrorText()); exit(); } //3、加载模型 ret= cvImg.paddle_loadMode("/sdcard/detect_八十目标检测模型_PP_Yolo_tiny.apk","detect",4); if(!ret){ loge(cvImg.paddle_getErrorText()); exit(); }else{ logd("模型加载OK...") } //截图并循环检测 var add=0; for(var i=0;i&lt;1000;i++){ //隐藏绘制的矩形,并屏幕截图 //cvImg.drawRectHide(); //sleep(50); var bitmap=image.captureScreenBitmap("png",0,0,cvImg.dw,cvImg.dh ,100); //cvImg.drawRectShow(); if(bitmap){//检测,以及性能计算 let t=time(); var info=cvImg.paddle_detect(bitmap,0.2,1); var subt=time()-t; add+=subt; logd("检测耗时:"+(time()-t)+"ms","平均:"+(add/(i+1))+"ms"); //调用失败输出错误信息。 if(cvImg.paddle_getErrorText()+""!=="")loge(cvImg.paddle_getErrorText()); //logd(info) //绘制结果,以及性能 if(info){ let t=time(); var json=JSON.parse(info); cvImg.drawRect(json,1);// {"person":1} 表示只显示人物 logd("绘制耗时:"+(time()-t)+"ms"); } //释放截图 image.recycle(bitmap) }else{ logd("请给个截图权限呗....") } } //释放模型 cvImg.paddle_release(); }</code></pre> <h5>目标检测在游戏中应用(实时效果图)</h5> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=409e98fd63a77af9cebce4c9e30dd1a9&amp;file=file.gif" alt="" /></p>

页面列表

ITEM_HTML