提交修改
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