前言
手机相册里的照片越来越多?想要快速的从数千张照片里找到去年在迪士尼乐园拍的那一张?华为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
作者:胡椒