cv图像识别

安卓opencv全分辨率找图


paddle_ocr 文字识别

<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": "Xv:0.172", "confidence": 0.8916975259780884, "leftTop": { "x": 455, "y": 0 }, "rigthTop": { "x": 576, "y": 2 }, "rigthBottom": { "x": 576, "y": 34 }, "leftBottom": { "x": 455, "y": 30 } }, { "text": "dY:1.1", "confidence": 0.8535435795783997, "leftTop": { "x": 248, "y": 4 }, "rigthTop": { "x": 388, "y": 0 }, "rigthBottom": { "x": 390, "y": 30 }, "leftBottom": { "x": 250, "y": 37 } } ]</code></pre> <p>text:表示识别的文本内容。 confidence:表示信度、相似度。 leftTop:文字内容所在位置的左上角坐标 rigthTop:文字内容所在位置的右上角坐标 rigthBottom:文字内容所在位置的右下角坐标 leftBottom:文字内容所在位置的左下角坐标</p> <p>这个返回值转换成JSON后,可以使用本插件 drawRect 方法打印显示到手机屏幕上。</p> <h5>例子:实时全屏OCR识别</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/ocr_百度超轻量级中文OCR模型.apk","ocr",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_ocr(bitmap,0.1,0); var subt=time()-t; add+=subt; logd("检测耗时:"+(time()-t)+"ms","平均:"+(add/(i+1))+"ms"); //调用失败输出错误信息。 if(cvImg.paddle_getErrorText()+""!=="")loge(cvImg.paddle_getErrorText()); //绘制结果,以及性能 if(info){ let t=time(); var json=JSON.parse(info); cvImg.drawRect(json,1); logd("绘制耗时:"+(time()-t)+"ms"); } //释放截图 image.recycle(bitmap) }else{ logd("请给个截图权限呗....") } } //释放模型 cvImg.paddle_release(); }</code></pre> <h5>例子:实时全屏OCR识别执行后的效果</h5> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=764d6a915baa1eba37d40ea1982a2981&amp;file=file.gif" alt="" /></p>

页面列表

ITEM_HTML