集成华为Image Kit图像主题标签功能 轻松整理400+图片场景的分类

前言

手机相册里的照片越来越多?想要快速的从数千张照片里找到去年在迪士尼乐园拍的那一张?华为Image Kit图像主题标签功能可以帮你高效的分类整理相册里的图片,轻松识别400+照片场景,帮您快速的找到你想要的那张!

应用场景

当手机相册图片多了,标签可以分类整理并储存好图片,让用户可迅速找到自己想要的图片;

在这里插入图片描述

在社交平台,为了让更多用户看到你精美的图片,“标签生成”步骤可为你的图片自动生成相应的标签,并对应分区分享图片,给你的图片带来更多的曝光量。

在这里插入图片描述

开发实战

下面给大家介绍怎么集成Imgae kit的图像主题标签能力:

开发准备

图像主题标签服务开发步骤如下,需要开发者提供图片和相关参数,得到相应的返回值。

步骤1:导入图像主题标签服务包。

import com.huawei.hms.image.vision.*;

步骤2:获取图像主题标签服务实例。

// 获取ImageVisionImpl对象
ImageVisionImpl imageVisionAPI = ImageVision.getInstance(this);

步骤3:服务初始化,与滤镜服务一致,可参考开发步骤中的相关描述。

步骤4:构建参数对象。

在这里插入图片描述

requestJson字段信息:

在这里插入图片描述

图像主题标签的taskJson字段信息如下:

在这里插入图片描述

注意:使用图像主题标签服务时,开发者需要保证提供的token是有效的,否则无法使用该服务。token的获取方式参见token获取方式

图像主题标签服务requestJson示例:

{
  "requestId":"",
  "taskJson":{"language":"cn"},
  "authJson":{"projectId":"projectIdTest","appId":"appIdTest","authApiKey":"authApiKeyTest","clientSecret":"CSecretTest","clientId":"CIdTest","token":"tokenTest"}
}

步骤5:图像主题标签服务获取结果。

开发者在调用图像主题标签接口时,需要输入待处理图片Bitmap等(参见步骤4)。此功能需要联网,如不联网,则返回错误码。注意因为接口涉及网络请求,需要开启子线程去调用接口。

// 获取返回值
new Thread(new Runnable() {
    @Override    
    public void run() {
        ImageVisionResult result = imageVisionAPI.analyzeImageThemeTag(requestJson, imageBitmap);
        }           
    }).start();

result返回值:

在这里插入图片描述
response返回值:
在这里插入图片描述

JSONArray tags:

在这里插入图片描述

JSONArray objectList:
在这里插入图片描述

JSONObject box:

在这里插入图片描述

步骤6:停止服务。

当不再需要主题标签效果时,调用该接口停止服务,stopCode为0时,执行成功。

if (null != imageVisionAPI) {
    int stopCode = imageVisionAPI.stop();
}

Github源码

Github源码:https://github.com/HMS-Core/hms-image-vision-java


原文链接:
https://developer.huawei.com/consumer/cn/forum/topic/0201405568018350247?fid=18
作者:胡椒

猜你喜欢

转载自blog.51cto.com/14772288/2561949