提交修改

This commit is contained in:
quyixiao 2025-03-19 20:43:49 +08:00
parent b4bcf4e506
commit 5103de1e3f
11 changed files with 342 additions and 3 deletions

View File

@ -12,11 +12,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* https://next.api.aliyun.com/api/imagerecog/2019-09-30/ClassifyingRubbish?tab=DEMO&lang=JAVA
* https://next.api.aliyun.com/api/imagerecog/2019-09-30/RecognizeImageColor
* <p>
* 垃圾分类识别
* 颜色识别
* <p>
* ClassifyingRubbish
* RecognizelmageColor
*/
@Component
@Slf4j

View File

@ -9,4 +9,7 @@ import lombok.Data;
*/
@Data
public class ARecognizeImageStyleRequest extends ACommonTextRequest {
}

View File

@ -0,0 +1,80 @@
package com.heyu.api.controller.imagerecog;
import com.aliyun.imagerecog20190930.models.RecognizeImageColorResponse;
import com.aliyun.imagerecog20190930.models.RecognizeImageColorResponseBody;
import com.heyu.api.alibaba.handle.imagerecog.ARecognizeImageColorHandle;
import com.heyu.api.alibaba.request.imagerecog.ARecognizeImageColorRequest;
import com.heyu.api.controller.BaseController;
import com.heyu.api.data.annotation.CacheResult;
import com.heyu.api.data.annotation.NotIntercept;
import com.heyu.api.data.utils.ApiR;
import com.heyu.api.data.utils.R;
import com.heyu.api.request.imagerecog.RecognizeImageColorReq;
import com.heyu.api.resp.imagerecog.RecognizeImageColorResp;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/***
* https://next.api.aliyun.com/api/imagerecog/2019-09-30/RecognizeImageColor?tab=DOC
* 颜色识别
*
*
* RecognizelmageColor
*
* 功能描述
* 颜色识别能力可以对输入图片的颜色信息进行分析输出颜色值RGB 形式和 HEX 格式与对应的占比信息
*
*/
@Slf4j
@RestController
@RequestMapping("/image/color")
@NotIntercept
public class RecognizeImageColorController extends BaseController {
@Autowired
private ARecognizeImageColorHandle arRecognizeImageColorHandle;
@RequestMapping("/recognize")
@CacheResult
public R recognize(RecognizeImageColorReq req) {
List<RecognizeImageColorResp> respList = new ArrayList<>();
ARecognizeImageColorRequest request = new ARecognizeImageColorRequest();
request.setImageUrl(req.getImageUrl());
request.setColorCount(req.getColorCount());
request.setImageBase64(req.getImageBase64());
ApiR<RecognizeImageColorResponse> aR = arRecognizeImageColorHandle.handle(request);
if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) {
RecognizeImageColorResponseBody.RecognizeImageColorResponseBodyData responseBodyData = aR.getData().getBody().getData();
if (CollectionUtils.isNotEmpty(responseBodyData.getColorTemplateList())) {
for (RecognizeImageColorResponseBody.RecognizeImageColorResponseBodyDataColorTemplateList templateList : responseBodyData.getColorTemplateList()) {
RecognizeImageColorResp resp = new RecognizeImageColorResp();
resp.setColor(templateList.getColor());
resp.setPercentage(templateList.getPercentage());
resp.setLabel(templateList.getLabel());
respList.add(resp);
}
}
return R.ok().setData(respList);
}
return R.error(aR.getErrorMsg());
}
}

View File

@ -0,0 +1,52 @@
package com.heyu.api.controller.imagerecog;
import com.aliyun.imagerecog20190930.models.RecognizeImageStyleResponse;
import com.aliyun.imagerecog20190930.models.RecognizeImageStyleResponseBody;
import com.heyu.api.alibaba.handle.imagerecog.ARecognizeImageStyleHandle;
import com.heyu.api.alibaba.request.imagerecog.ARecognizeImageStyleRequest;
import com.heyu.api.controller.BaseController;
import com.heyu.api.data.annotation.CacheResult;
import com.heyu.api.data.annotation.NotIntercept;
import com.heyu.api.data.utils.ApiR;
import com.heyu.api.data.utils.R;
import com.heyu.api.request.imagerecog.RecognizeImageStyleReq;
import com.heyu.api.resp.imagerecog.RecognizeImageStyleResp;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping("/image/style")
@NotIntercept
public class RecognizeImageStyleController extends BaseController {
@Autowired
private ARecognizeImageStyleHandle arRecognizeImageStyleHandle;
@RequestMapping("/recognize")
@CacheResult
public R recognize(RecognizeImageStyleReq req) {
RecognizeImageStyleResp resp = new RecognizeImageStyleResp();
ARecognizeImageStyleRequest request = new ARecognizeImageStyleRequest();
request.setImageBase64(req.getImageBase64());
request.setImageUrl(req.getImageUrl());
ApiR<RecognizeImageStyleResponse> aR = arRecognizeImageStyleHandle.handle(request);
if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) {
RecognizeImageStyleResponseBody.RecognizeImageStyleResponseBodyData responseBodyData = aR.getData().getBody().getData();
if (CollectionUtils.isNotEmpty(responseBodyData.getStyles())) {
resp.setStyleList(responseBodyData.getStyles());
return R.ok().setData(resp);
}
}
return R.error(aR.getErrorMsg());
}
}

View File

@ -0,0 +1,80 @@
package com.heyu.api.controller.imagerecog;
import com.aliyun.imagerecog20190930.models.RecognizeSceneResponse;
import com.aliyun.imagerecog20190930.models.RecognizeSceneResponseBody;
import com.heyu.api.alibaba.handle.imagerecog.ARecognizeSceneHandle;
import com.heyu.api.alibaba.request.imagerecog.ARecognizeSceneRequest;
import com.heyu.api.controller.BaseController;
import com.heyu.api.data.annotation.CacheResult;
import com.heyu.api.data.annotation.NotIntercept;
import com.heyu.api.data.utils.ApiR;
import com.heyu.api.data.utils.R;
import com.heyu.api.request.imagerecog.RecognizeSceneReq;
import com.heyu.api.resp.imagerecog.RecognizeSceneResp;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/***
*
* https://next.api.aliyun.com/api/imagerecog/2019-09-30/RecognizeScene
*场景识别
*
* RecognizeScene
*
* 功能描述
* 场景识别能力可以识别图像中的场景环境支持数十种常见场景包括
*
* 人物动物草地蔬菜植物水果餐厅美食聚餐烧烤
* 物品手机显示器
* 室外广场建筑游乐场户外公路小河山峰夜景天空旅行日出日落树林沙滩沙漠海滨露营街景街道运动运动场婚礼演出
* 地铁汽车火车自行车飞机
* 其他
*
*
*
*/
@Slf4j
@RestController
@RequestMapping("/scene")
@NotIntercept
public class RecognizeSceneController extends BaseController {
@Autowired
private ARecognizeSceneHandle arRecognizeSceneHandle;
@RequestMapping("/recognize")
@CacheResult
public R recognize(RecognizeSceneReq req) {
List<RecognizeSceneResp> respList = new ArrayList<>();
ARecognizeSceneRequest request = new ARecognizeSceneRequest();
request.setImageBase64(req.getImageBase64());
request.setImageUrl(req.getImageUrl());
ApiR<RecognizeSceneResponse> aR = arRecognizeSceneHandle.handle(request);
if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) {
RecognizeSceneResponseBody.RecognizeSceneResponseBodyData responseBodyData = aR.getData().getBody().getData();
if (CollectionUtils.isNotEmpty(responseBodyData.getTags())) {
for (RecognizeSceneResponseBody.RecognizeSceneResponseBodyDataTags tag : responseBodyData.getTags()) {
RecognizeSceneResp resp = new RecognizeSceneResp();
resp.setConfidence(tag.getConfidence());
resp.setValue(tag.getValue());
respList.add(resp);
}
return R.ok().setData(respList);
}
}
return R.error(aR.getErrorMsg());
}
}

View File

@ -0,0 +1,22 @@
package com.heyu.api.request.imagerecog;
import com.heyu.api.request.CommonReq;
import lombok.Data;
@Data
public class RecognizeImageColorReq extends CommonReq {
/**
* 期望的色板输出数量取值范围 1~10默认值为 3
*
* 示例值:
* 5
* 正则:
* ^\d+$
* 取值 <= 16
*/
private Integer colorCount = 3;
}

View File

@ -0,0 +1,8 @@
package com.heyu.api.request.imagerecog;
import com.heyu.api.request.CommonReq;
import lombok.Data;
@Data
public class RecognizeImageStyleReq extends CommonReq {
}

View File

@ -0,0 +1,11 @@
package com.heyu.api.request.imagerecog;
import com.heyu.api.request.CommonReq;
import lombok.Data;
@Data
public class RecognizeSceneReq extends CommonReq {
}

View File

@ -0,0 +1,35 @@
package com.heyu.api.resp.imagerecog;
import com.heyu.api.data.dto.BaseResp;
import lombok.Data;
@Data
public class RecognizeImageColorResp extends BaseResp {
/***
* RGB 颜色值16 进制例如291A18
*
* 示例值:
* 270315
*/
public String color;
/***
* 颜色标签 11 black黑色white白色gray灰色red红色orange橙色yellow黄色green绿色cyan青色blue蓝色purple紫色magenta紫红色
*
* 示例值:
* red
*/
public String label;
/***
* 当前颜色标签所占比例取值范围[0.0, 1.0]
*
* 示例值:
* 0.459527
*/
public Float percentage;
}

View File

@ -0,0 +1,21 @@
package com.heyu.api.resp.imagerecog;
import com.heyu.api.data.dto.BaseResp;
import lombok.Data;
import java.util.List;
@Data
public class RecognizeImageStyleResp extends BaseResp {
/***
* 功能描述
* 风格识别能力可以对输入图像的风格类型进行分析识别可能的风格与语意标签可以识别的风格包括chinese中国风
* watercolor水彩cartoon卡通real实景standard标准simple简洁lively活泼
* colourful多彩luxury豪华technology科技morbidezza柔美strong硬朗
* simpleelegant素雅coolcold高冷promotion促销protrude突出
* 关于该接口功能的示例图如下 视觉风格为中国风语义风格为促销
*/
private List<String> styleList;
}

View File

@ -0,0 +1,27 @@
package com.heyu.api.resp.imagerecog;
import com.heyu.api.data.dto.BaseResp;
import lombok.Data;
@Data
public class RecognizeSceneResp extends BaseResp {
/***
* 标签名称的置信度取值范围 0~100
*
* 示例值:
* 79
*
*/
public Float confidence;
/***
* 标签名称
*
* 示例值:
*
*/
public String value;
}