diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/SegmentHDBodyController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/SegmentHDBodyController.java new file mode 100644 index 0000000..180a127 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/SegmentHDBodyController.java @@ -0,0 +1,64 @@ +package com.heyu.api.controller.imageseg; + + +import com.aliyun.imageseg20191230.models.SegmentHDBodyResponse; +import com.aliyun.imageseg20191230.models.SegmentHDBodyResponseBody; +import com.heyu.api.alibaba.handle.imageseg.ASegmentHDBodyHandle; +import com.heyu.api.alibaba.request.imageseg.ASegmentHDBodyRequest; +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.SegmentHDBodyReq; +import com.heyu.api.resp.imageseg.SegmentHDBodyResp; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * https://next.api.aliyun.com/api/imageseg/2019-12-30/SegmentHDBody?tab=DEMO&lang=JAVA + *

+ *

+ * 高清人体分割 SegmentHDBody + *

+ * 功能描述 + * 高清人体分割能力可以自动识别图中人体轮廓,实现与背景进行分离,返回分割后的前景人像图。本功能适用于真人图片,不适用于卡通图片。 关于该接口功能的示例图如下: + *

+ *

+ * 应用场景 + * 人像摄影:人体分割通过将摄影主体人物从背景中分割出来,将背景虚化,以达到大光圈浅景深效果,突出人物主体。 + * 证件照制作:上传或拍摄一张人像照片,可将人物精细地分割出来,再搭配其他背景处理能力,最终制作出标准的证件照。 + */ +@Slf4j +@RestController +@RequestMapping("/body") +@NotIntercept +public class SegmentHDBodyController extends BaseController { + + + @Autowired + private ASegmentHDBodyHandle segmentHDBodyHandle; + + + @RequestMapping("/hd/segment") + @CacheResult + public R segment(SegmentHDBodyReq request) { + SegmentHDBodyResp resp = new SegmentHDBodyResp(); + + ASegmentHDBodyRequest aSegmentHairRequest = new ASegmentHDBodyRequest(); + + aSegmentHairRequest.setImageBase64(request.getImageBase64()); + aSegmentHairRequest.setImageUrl(request.getImageUrl()); + + + ApiR aR = segmentHDBodyHandle.handle(aSegmentHairRequest); + if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) { + SegmentHDBodyResponseBody.SegmentHDBodyResponseBodyData responseBodyData = aR.getData().getBody().getData(); + resp.setImageURL(responseBodyData.getImageURL()); + return R.ok().setData(resp); + } + return R.error(); + } +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/SegmentHairController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/SegmentHairController.java index 159b276..fa127e2 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/SegmentHairController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/SegmentHairController.java @@ -50,7 +50,7 @@ public class SegmentHairController extends BaseController { @RequestMapping("/segment") @CacheResult - public R changeSky(ASegmentHairRequest request) { + public R segment(ASegmentHairRequest request) { List respList = new ArrayList<>(); diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/imagerecog/SegmentHDBodyReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/imagerecog/SegmentHDBodyReq.java new file mode 100644 index 0000000..398ea73 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/imagerecog/SegmentHDBodyReq.java @@ -0,0 +1,13 @@ +package com.heyu.api.request.imagerecog; + + +import com.heyu.api.request.CommonReq; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@Data +public class SegmentHDBodyReq extends CommonReq { + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/SegmentHDBodyResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/SegmentHDBodyResp.java new file mode 100644 index 0000000..0592786 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/SegmentHDBodyResp.java @@ -0,0 +1,8 @@ +package com.heyu.api.resp.imageseg; + +import com.heyu.api.resp.CommonImageUrlResp; +import lombok.Data; + +@Data +public class SegmentHDBodyResp extends CommonImageUrlResp { +}