目录

在开始API开发工作之前,您需要完成必要的开发准备工作,同时请确保您的工程中已经配置HMS Core SDK的maven仓地址,并且完成了本服务的SDK集成。

1. 创建地标分析器。可以通过地标识别自定义参数类MLRemoteLandmarkAnalyzerSetting创建分析器。

  1. // 方式1:使用默认的参数配置。
  2. MLRemoteLandmarkAnalyzer analyzer = MLAnalyzerFactory.getInstance().getRemoteLandmarkAnalyzer();
  3. // 方式2:使用自定义的参数配置。
  4. /**
  5.  * setLargestNumOfReturns 识别结果的最大数量。
  6.  * setPatternType  分析器使用的模式。  
  7.  * MLRemoteLandmarkAnalyzerSetting.STEADY_PATTERN:值为1,即稳定模式。
  8.  * MLRemoteLandmarkAnalyzerSetting.NEWEST_PATTERN:值为2,即最新模式。
  9.  */  
  10. MLRemoteLandmarkAnalyzerSetting settings = new MLRemoteLandmarkAnalyzerSetting.Factory()
  11.    .setLargestNumOfReturns(1)
  12.    .setPatternType(MLRemoteLandmarkAnalyzerSetting.STEADY_PATTERN)        
  13.    .create();
  14. MLRemoteLandmarkAnalyzer analyzer = MLAnalyzerFactory.getInstance().getRemoteLandmarkAnalyzer(settings);

2. 通过android.graphics.Bitmap构造MLFrame,支持的图片格式包括:jpg/jpeg/png/bmp,建议图片尺寸不小于640*640像素。

  1. MLFrame mlFrame = new MLFrame.Creator().setBitmap(bitmap).create();

3. 进行地标识别。

  1. Task<List<MLRemoteLandmark>> task = analyzer.asyncAnalyseFrame(mlFrame);
  2. task.addOnSuccessListener(new OnSuccessListener<List<MLRemoteLandmark>>() {
  3.    public void onSuccess(List<MLRemoteLandmark> landmarkResults) {
  4.    // 识别成功的处理逻辑。
  5.    }})
  6.    .addOnFailureListener(new OnFailureListener() {
  7.    public void onFailure(Exception e) {
  8.        // 识别失败的处理逻辑。
  9.        // Recognition failure.
  10.        try {
  11.            MLException mlException = (MLException)e;
  12.            // 获取错误码,开发者可以对错误码进行处理,根据错误码进行差异化的页面提示。错误码信息可参见:机器学习服务错误码。
  13.            int errorCode = mlException.getErrCode();
  14.            // 获取报错信息,开发者可以结合错误码,快速定位问题。
  15.            String errorMessage = mlException.getMessage();
  16.        } catch (Exception error) {
  17.           // 转换错误处理。
  18.        }
  19.   }
  20. });

4. 识别完成,停止分析器,释放检测资源。

  1. if (analyzer != null) {
  2.    try {
  3.        analyzer.stop();
  4.    } catch (IOException e) {
  5.         // 异常处理。
  6.    }
  7. }