提交修改
This commit is contained in:
parent
d57d910364
commit
f06f1ef7fd
@ -0,0 +1,64 @@
|
||||
package com.heyu.api.controller.imageseg;
|
||||
|
||||
|
||||
import com.aliyun.imageseg20191230.models.SegmentHDSkyResponse;
|
||||
import com.aliyun.imageseg20191230.models.SegmentHDSkyResponseBody;
|
||||
import com.heyu.api.alibaba.handle.imageseg.ASegmentHDSkyHandle;
|
||||
import com.heyu.api.alibaba.request.imageseg.ASegmentHDSkyRequest;
|
||||
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.SegmentHDSkyReq;
|
||||
import com.heyu.api.resp.imageseg.SegmentHDSkyResp;
|
||||
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/SegmentHDSky?tab=DOC
|
||||
* <p>
|
||||
* <p>
|
||||
* 天空高清分割 SegmentHDSky
|
||||
*
|
||||
* 应用场景
|
||||
* 户外美照:当您在户外所拍摄的照片天空不够蔚蓝通透时,无论多复杂的场景,天空高清分割都可以将天空部分抠出,您可以换上美美的天空,让照片达到理想的视觉效果。
|
||||
*
|
||||
* 特色优势
|
||||
* 支持更大分辨率:天空高清分割最大可以识别分辨率 5000×5000 像素的图片,更适合商业摄影的高水准后期处理。
|
||||
* 支持更多细节:天空高清分割可以得到更精细的图片,展现更多的细节。
|
||||
*
|
||||
*
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/sky")
|
||||
@NotIntercept
|
||||
public class SegmentHDSkyController extends BaseController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private ASegmentHDSkyHandle segmentHDSkyHandle;
|
||||
|
||||
|
||||
@RequestMapping("/hd/segment")
|
||||
@CacheResult
|
||||
public R segment(SegmentHDSkyReq request) {
|
||||
SegmentHDSkyResp resp = new SegmentHDSkyResp();
|
||||
ASegmentHDSkyRequest aSegmentHDSkyRequest = new ASegmentHDSkyRequest();
|
||||
aSegmentHDSkyRequest.setImageBase64(request.getImageBase64());
|
||||
aSegmentHDSkyRequest.setImageUrl(request.getImageUrl());
|
||||
|
||||
ApiR<SegmentHDSkyResponse> aR = segmentHDSkyHandle.handle(aSegmentHDSkyRequest);
|
||||
if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) {
|
||||
SegmentHDSkyResponseBody.SegmentHDSkyResponseBodyData responseBodyData = aR.getData().getBody().getData();
|
||||
resp.setImageURL(responseBodyData.getImageURL());
|
||||
return R.ok().setData(resp);
|
||||
}
|
||||
return R.error(aR.getErrorMsg());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,69 @@
|
||||
package com.heyu.api.controller.imageseg;
|
||||
|
||||
import com.aliyun.imageseg20191230.models.SegmentHeadResponse;
|
||||
import com.aliyun.imageseg20191230.models.SegmentHeadResponseBody;
|
||||
import com.heyu.api.alibaba.handle.imageseg.ASegmentHeadHandle;
|
||||
import com.heyu.api.alibaba.request.imageseg.ASegmentHeadRequest;
|
||||
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.SegmentHeadReq;
|
||||
import com.heyu.api.resp.imageseg.SegmentHeadResp;
|
||||
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;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/head")
|
||||
@NotIntercept
|
||||
public class SegmentHeadController extends BaseController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private ASegmentHeadHandle segmentHeadHandle;
|
||||
|
||||
|
||||
@RequestMapping("/segment")
|
||||
@CacheResult
|
||||
public R segment(SegmentHeadReq request) {
|
||||
List<SegmentHeadResp> respList = new ArrayList<>();
|
||||
ASegmentHeadRequest aSegmentHeadRequest = new ASegmentHeadRequest();
|
||||
|
||||
|
||||
aSegmentHeadRequest.setReturnType(request.getReturnType());
|
||||
aSegmentHeadRequest.setImageBase64(request.getImageBase64());
|
||||
aSegmentHeadRequest.setImageUrl(request.getImageUrl());
|
||||
|
||||
|
||||
ApiR<SegmentHeadResponse> aR = segmentHeadHandle.handle(aSegmentHeadRequest);
|
||||
if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) {
|
||||
SegmentHeadResponseBody.SegmentHeadResponseBodyData responseBodyData = aR.getData().getBody().getData();
|
||||
if (CollectionUtils.isNotEmpty(responseBodyData.getElements())) {
|
||||
for (SegmentHeadResponseBody.SegmentHeadResponseBodyDataElements element : responseBodyData.getElements()) {
|
||||
SegmentHeadResp segmentHeadResp = new SegmentHeadResp();
|
||||
segmentHeadResp.setImageURL(element.getImageURL());
|
||||
segmentHeadResp.setY(element.getY());
|
||||
segmentHeadResp.setX(element.getX());
|
||||
segmentHeadResp.setWidth(element.getWidth());
|
||||
segmentHeadResp.setHeight(element.getHeight());
|
||||
respList.add(segmentHeadResp);
|
||||
}
|
||||
return R.ok().setData(respList);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
return R.error(aR.getErrorMsg());
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,56 @@
|
||||
package com.heyu.api.controller.imageseg;
|
||||
|
||||
|
||||
import com.aliyun.imageseg20191230.models.SegmentSkinResponse;
|
||||
import com.aliyun.imageseg20191230.models.SegmentSkinResponseBody;
|
||||
import com.heyu.api.alibaba.handle.imageseg.ASegmentSkinHandle;
|
||||
import com.heyu.api.alibaba.request.imageseg.ASegmentSkinRequest;
|
||||
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.SegmentSkinReq;
|
||||
import com.heyu.api.resp.imageseg.SegmentSkinResp;
|
||||
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/SegmentSkin?tab=DEMO&lang=JAVA
|
||||
* <p>
|
||||
* 皮肤分割
|
||||
* <p>
|
||||
* SegmentSkin
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/skin")
|
||||
@NotIntercept
|
||||
public class SegmentSkinController extends BaseController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private ASegmentSkinHandle segmentSkinHandle;
|
||||
|
||||
|
||||
@RequestMapping("/segment")
|
||||
@CacheResult
|
||||
public R segment(SegmentSkinReq request) {
|
||||
SegmentSkinResp resp = new SegmentSkinResp();
|
||||
|
||||
ASegmentSkinRequest segmentSkinRequest = new ASegmentSkinRequest();
|
||||
segmentSkinRequest.setImageBase64(request.getImageBase64());
|
||||
segmentSkinRequest.setImageUrl(request.getImageUrl());
|
||||
|
||||
ApiR<SegmentSkinResponse> aR = segmentSkinHandle.handle(segmentSkinRequest);
|
||||
if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) {
|
||||
SegmentSkinResponseBody.SegmentSkinResponseBodyData responseBodyData = aR.getData().getBody().getData();
|
||||
resp.setImageURL(responseBodyData.getURL());
|
||||
return R.ok().setData(resp);
|
||||
}
|
||||
return R.error(aR.getErrorMsg());
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
package com.heyu.api.request.imagerecog;
|
||||
|
||||
import com.heyu.api.request.CommonReq;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SegmentHDSkyReq extends CommonReq {
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package com.heyu.api.request.imagerecog;
|
||||
|
||||
|
||||
import com.heyu.api.request.CommonReq;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SegmentHeadReq extends CommonReq {
|
||||
|
||||
/**
|
||||
* 指定返回的图像形式。
|
||||
* <p>
|
||||
* 如果设置为mask,则返回单通道 mask。
|
||||
* 如果不设置或者设置为任意非 mask 值,则返回四通道 PNG 图。
|
||||
* 示例值:
|
||||
* mask
|
||||
*/
|
||||
private String returnType = "mask";
|
||||
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
package com.heyu.api.request.imagerecog;
|
||||
|
||||
import com.heyu.api.request.CommonReq;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SegmentSkinReq extends CommonReq {
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
package com.heyu.api.resp.imageseg;
|
||||
|
||||
import com.heyu.api.resp.CommonImageUrlResp;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SegmentHDSkyResp extends CommonImageUrlResp {
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,49 @@
|
||||
package com.heyu.api.resp.imageseg;
|
||||
|
||||
import com.heyu.api.data.dto.BaseResp;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SegmentHeadResp extends BaseResp {
|
||||
|
||||
/**
|
||||
* 结果图的高度。
|
||||
*
|
||||
* 示例值:
|
||||
* 180
|
||||
*/
|
||||
public Integer height;
|
||||
|
||||
/**
|
||||
* 结果图像 URL 地址。 抠图之后返回四通道 PNG 图,无压缩,图像体积会变大。
|
||||
*
|
||||
* 说明 该 URL 地址为临时地址,有效期为 30 分钟,过期后将无法访问。若需要长时间或者永久保存文件,请在 30 分钟内访问 URL 地址,下载文件转存到自己的 OSS 或者其他存储空间。
|
||||
* 示例值:
|
||||
* http://viapi-cn-shanghai-dha-segmenter.oss-cn-shanghai.aliyuncs.com/upload/result_headsegmenter/2020-6-2/invi_headsegmenter_015910809094981099086_TAamhR.png?Expires=1591082709&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=xuUE%2FbYeB9LpR18VXawOVeutQU****
|
||||
*/
|
||||
public String imageURL;
|
||||
|
||||
/**
|
||||
* 结果图的宽度。
|
||||
*
|
||||
* 示例值:
|
||||
* 116
|
||||
*/
|
||||
public Integer width;
|
||||
|
||||
/***
|
||||
* 左上角 x 坐标。
|
||||
*
|
||||
* 示例值:
|
||||
* 445
|
||||
*/
|
||||
public Integer x;
|
||||
|
||||
/**
|
||||
* 左上角 y 坐标。
|
||||
*
|
||||
* 示例值:
|
||||
* 102
|
||||
*/
|
||||
public Integer y;
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
package com.heyu.api.resp.imageseg;
|
||||
|
||||
|
||||
import com.heyu.api.resp.CommonImageUrlResp;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SegmentSkinResp extends CommonImageUrlResp {
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user