1. 概述
AmLink平台具有不错的图像处理能力,我们可以提供图像识别的API 接口以帮助客户实现相关需求,有兴趣的客户请更新最新固件,发邮件联系我们索取对应的库文件, 下面介绍一些主要API函数的调用方法。
2. API说明
图像识别处理通过ImageAnalyze 类来完成,该类有主要如下public接口:
2.1 public int init(Handler handler,String outPath)
该函数实现识别算法参数的初始化。主要参数:
handler : Handler类型,用于图片识别处理后把识别结果发消息给调用者
outPath : 图片分析结果保持路径,如果是null,就是用默认路径(/sdcard/image_out)
2.2 public int addImage(String path)
该函数增加图片到图片队列里等待分析,参数:
path : 原始图片文件的路径,如:/sdcard/image/test1.jpg
2.3 public int startAnalyze()
该函数开始逐个分析图片队列里的图片,分析结果通过hanler发消息上报。消息带一个String类型的参数,msg.what=1,参数格式如下
“srcPath;dstPath;target1,target2…”
其中srcPath:原始图片路径全名,dstPath: 结果图片保存路径全名,
target1,target2 表示识别结果,可以包含多个目标,以逗号隔开。
对于每一个target,由6个参数组成, 格式如下: name:credibility:xLT:yLT:xRB:yRB 。name:识别目标名字,credibility:可信度,xLT:目标区域左上角坐标x, yLT:目标区域左上角坐标y, xRB:目标区域右下角坐标x, yRB:目标区域右下角坐标y. 坐标最大值取决于图片分辨率。
2.4 public void cleanQueue()
清零图片队列。(并不删除原始图片)
2.5 public int stopAnalyze()
停止图像分析. 需要注意的是分析算法有单独线程的,如果图片正在识别中,该函数不会马上生效。要等当前图片处理完才停止。
2.6 public int getStatus()
返回当前状态,0: 表示未初始化,1: idle状态,初始化完成,2: 等待新图片加入。 3: 图片处理中,4:停止状态。负数表示错误异常.
2.7 public boolean setThr(int val)
置信度门限参数设置,范围0-100, 值越大,识别结果的可信度越高,虚警的概率越小,值太高可能会识别失败。
2.8 public int getThr()
获取当前的置信度门限,范围0-100。
2.9 public void updateCfgLib(Context context)
更新训练配置参数,比较耗时。一般开机调用一次
3. 参考代码
import com.temolin.imageutility.ImageAnalyze; //请导入aar public class ImgTool { ImageAnalyze mImageAnalyze; Handler mHander; public ImgTool(Handler handler){ mImageAnalyze = ImageAnalyze.getInstance(); mHander = handler; mImageAnalyze.init(mHander,"/sdcard/image_out"); } public void upCfg(Context context){ mImageAnalyze.updateCfgLib(context); } public void start(){ mImageAnalyze.startAnalyze(); } public void stop(){ mImageAnalyze.cleanQuene(); mImageAnalyze.stopAnalyze(); } public void pause(){ mImageAnalyze.stopAnalyze(); } public void add(String path){ mImageAnalyze.addImage(path); } } private void testImgTool(){ Log.v(TAG,"testImgTool"); imgTool = new ImgTool(mHandler); imgTool.upCfg(this); imgTool.add("/sdcard/test1.jpg"); imgTool.add("/sdcard/test2.jpg"); imgTool.start(); Log.v(TAG,"testImgTool end"); }