From 57ff3a2693d825c0c00c5d7868c95aa24720f50e Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Sun, 23 Mar 2025 16:44:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../response/doc/BRemoveHandwritingResp.java | 5 ++ .../baidu/response/doc/BRemoveMoireResp.java | 5 ++ .../response/others/BDocCropEnhanceResp.java | 5 ++ .../convert/ParserTextController.java | 2 - .../controller/doc/DocClassifyController.java | 62 ++++++++++++++++++ .../doc/DocCropEnhanceController.java | 57 ++++++++++++++++ .../controller/doc/DocRepairController.java | 56 ++++++++++++++++ .../doc/RemoveHandwritingController.java | 65 +++++++++++++++++++ .../controller/doc/RemoveMoireController.java | 60 +++++++++++++++++ .../heyu/api/resp/doc/DocClassifyResp.java | 19 ++++++ .../heyu/api/resp/doc/DocCropEnhanceResp.java | 22 +++++++ .../com/heyu/api/resp/doc/DocRepairResp.java | 8 +++ .../api/resp/doc/RemoveHandwritingResp.java | 22 +++++++ .../heyu/api/resp/doc/RemoveMoireResp.java | 22 +++++++ 14 files changed, 408 insertions(+), 2 deletions(-) create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/doc/DocClassifyController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/doc/DocCropEnhanceController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/doc/DocRepairController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/doc/RemoveHandwritingController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/doc/RemoveMoireController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/doc/DocClassifyResp.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/doc/DocCropEnhanceResp.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/doc/DocRepairResp.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/doc/RemoveHandwritingResp.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/doc/RemoveMoireResp.java diff --git a/api-third/src/main/java/com/heyu/api/baidu/response/doc/BRemoveHandwritingResp.java b/api-third/src/main/java/com/heyu/api/baidu/response/doc/BRemoveHandwritingResp.java index 98ae218..1848f7f 100644 --- a/api-third/src/main/java/com/heyu/api/baidu/response/doc/BRemoveHandwritingResp.java +++ b/api-third/src/main/java/com/heyu/api/baidu/response/doc/BRemoveHandwritingResp.java @@ -18,4 +18,9 @@ public class BRemoveHandwritingResp extends BBaseResp { private String imageProcessed; @JsonProperty("log_id") private Long logId; + @JsonProperty("pdf_file_size") + private String pdfFileSize; + + + } diff --git a/api-third/src/main/java/com/heyu/api/baidu/response/doc/BRemoveMoireResp.java b/api-third/src/main/java/com/heyu/api/baidu/response/doc/BRemoveMoireResp.java index c9eb9f1..afcd199 100644 --- a/api-third/src/main/java/com/heyu/api/baidu/response/doc/BRemoveMoireResp.java +++ b/api-third/src/main/java/com/heyu/api/baidu/response/doc/BRemoveMoireResp.java @@ -20,4 +20,9 @@ public class BRemoveMoireResp extends BBaseResp { private String imageProcessed; @JsonProperty("log_id") private Long logId; + + + @JsonProperty("pdf_file_size") + private String pdfFileSize; + } diff --git a/api-third/src/main/java/com/heyu/api/baidu/response/others/BDocCropEnhanceResp.java b/api-third/src/main/java/com/heyu/api/baidu/response/others/BDocCropEnhanceResp.java index 543771d..1785bd2 100644 --- a/api-third/src/main/java/com/heyu/api/baidu/response/others/BDocCropEnhanceResp.java +++ b/api-third/src/main/java/com/heyu/api/baidu/response/others/BDocCropEnhanceResp.java @@ -24,6 +24,11 @@ public class BDocCropEnhanceResp extends BBaseResp { private String imageProcessed; @JsonProperty("log_id") private Long logId; + /*** + * 传入PDF文件的总页数,当 pdf_file 参数有效时返回该字段 + */ + @JsonProperty("pdf_file_size") + private Long pdfFileNum; @NoArgsConstructor @Data diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/convert/ParserTextController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/convert/ParserTextController.java index f2796d5..e4115b5 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/convert/ParserTextController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/convert/ParserTextController.java @@ -31,8 +31,6 @@ import org.springframework.web.bind.annotation.RestController; * 文档解析-获取结果 * */ - - @Slf4j @RestController @RequestMapping("/text") diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/doc/DocClassifyController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/doc/DocClassifyController.java new file mode 100644 index 0000000..580c75f --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/doc/DocClassifyController.java @@ -0,0 +1,62 @@ +package com.heyu.api.controller.doc; + + +import com.heyu.api.baidu.handle.doc.BDocClassifyHandle; +import com.heyu.api.baidu.request.doc.BDocClassifyRequest; +import com.heyu.api.baidu.response.doc.BDocClassifyResp; +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.resp.doc.DocClassifyResp; +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://console.bce.baidu.com/support/?_=1740667714316×tamp=1742716755429#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E6%96%87%E6%A1%A3%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86&api=rest%2F2.0%2Focr%2Fv1%2Fdoc_classify&method=post + * + * + * 文件检测分类 + * + * 接口描述 + * 对图片中的文档、卡证、票据等含文字的主体进行检测、分类,可同时支持一张图片中多张主体的情况,返回每个主体的类别及位置信息。 + * + * + */ +@Slf4j +@RestController +@RequestMapping("/doc") +@NotIntercept +public class DocClassifyController { + + @Autowired + private BDocClassifyHandle bDocClassifyHandle; + + + @RequestMapping("/classify") + @CacheResult + public R classify(BDocClassifyRequest request) { + List respList = new ArrayList<>(); + ApiR bR = bDocClassifyHandle.handle(request); + if (bR.isSuccess()) { + BDocClassifyResp bDocClassifyResp = bR.getData(); + if (CollectionUtils.isNotEmpty(bDocClassifyResp.getWordsResult())) { + for (BDocClassifyResp.WordsResultDTO wordsResultDTO : bDocClassifyResp.getWordsResult()) { + DocClassifyResp resp = new DocClassifyResp(); + resp.setProbablity(wordsResultDTO.getProbablity()); + resp.setType(wordsResultDTO.getType()); + respList.add(resp); + } + return R.ok().setData(respList); + } + } + return R.error(bR.getErrorMsg()); + } + +} \ No newline at end of file diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/doc/DocCropEnhanceController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/doc/DocCropEnhanceController.java new file mode 100644 index 0000000..6ce19b1 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/doc/DocCropEnhanceController.java @@ -0,0 +1,57 @@ +package com.heyu.api.controller.doc; + + +import com.heyu.api.baidu.handle.doc.BDocCropEnhanceHandle; +import com.heyu.api.baidu.request.doc.BDocCropEnhanceRequest; +import com.heyu.api.baidu.response.others.BDocCropEnhanceResp; +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.resp.doc.DocCropEnhanceResp; +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://console.bce.baidu.com/support/?_=1740667714316×tamp=1742718224202#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E6%96%87%E6%A1%A3%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86&api=rest%2F2.0%2Focr%2Fv1%2Fdoc_crop_enhance&method=post + * + *文档矫正增强 + * + * + * 接口描述 + * 对图片中的文件、卡证、票据等内容进行四角点检测定位,提取主体内容并对其进行矫正,同时可选图片增强效果进一步提升图片清晰度,达到主体检测矫正并增强的目的,提升图片整体质量。示意图如下: + * + */ +@Slf4j +@RestController +@RequestMapping("/doc") +@NotIntercept +public class DocCropEnhanceController extends BaseController { + + @Autowired + private BDocCropEnhanceHandle bDocCropEnhanceHandle; + + @RequestMapping("/cropEnhance") + @CacheResult + public R cropEnhance(BDocCropEnhanceRequest request) { + DocCropEnhanceResp resp = new DocCropEnhanceResp(); + + ApiR bR = bDocCropEnhanceHandle.handle(request); + + + if (bR.isSuccess()) { + BDocCropEnhanceResp bDocCropEnhanceResp = bR.getData(); + + resp.setImageProcessed(bDocCropEnhanceResp.getImageProcessed()); + resp.setPdfFileSize(bDocCropEnhanceResp.getPdfFileNum() + ""); + + return R.ok().setData(resp); + + } + + return R.error(); + } +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/doc/DocRepairController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/doc/DocRepairController.java new file mode 100644 index 0000000..1449f69 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/doc/DocRepairController.java @@ -0,0 +1,56 @@ +package com.heyu.api.controller.doc; + + +import com.heyu.api.baidu.handle.doc.BDocRepairHandle; +import com.heyu.api.baidu.request.doc.BDocRepairRequest; +import com.heyu.api.baidu.response.doc.BDocRepairResp; +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.resp.doc.DocRepairResp; +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://console.bce.baidu.com/support/?_=1740667714316×tamp=1742718778563#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E6%96%87%E6%A1%A3%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86&api=rest%2F2.0%2Fimage-process%2Fv1%2Fdoc_repair&method=post + * + * + * 接口描述 + * 自动识别并去除文档图片中的底纹,使图片更加清晰,便于阅读。示意图如下: + * + * + * + */ +@Slf4j +@RestController +@RequestMapping("/doc") +@NotIntercept +public class DocRepairController { + + + @Autowired + private BDocRepairHandle bDocRepairHandle; + + @RequestMapping("/repair") + @CacheResult + public R repair(BDocRepairRequest request) { + DocRepairResp resp = new DocRepairResp(); + + ApiR bR = bDocRepairHandle.handle(request); + if (bR.isSuccess()) { + BDocRepairResp bDocRepairResp = bR.getData(); + + resp.setImageURL(bDocRepairResp.getResult()); + return R.ok().setData(resp); + + } + + return R.error(bR.getErrorMsg()); + } + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/doc/RemoveHandwritingController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/doc/RemoveHandwritingController.java new file mode 100644 index 0000000..04d9ee5 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/doc/RemoveHandwritingController.java @@ -0,0 +1,65 @@ +package com.heyu.api.controller.doc; + + +import com.heyu.api.baidu.handle.doc.BRemoveHandwritingHandle; +import com.heyu.api.baidu.request.doc.BRemoveHandwritingRequest; +import com.heyu.api.baidu.response.doc.BRemoveHandwritingResp; +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.resp.doc.RemoveHandwritingResp; +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://console.bce.baidu.com/support/?_=1740667714316×tamp=1742718885645#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E6%96%87%E6%A1%A3%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86&api=%2Frest%2F2.0%2Focr%2Fv1%2Fremove_handwriting&method=post + * + * 文档去手写 + * + * + * 接口描述 + * 去除图片中的手写内容,保留印刷体内容,可用于试卷去手写还原等场景。示意图如下: + * + * + * + */ +@Slf4j +@RestController +@RequestMapping("/doc") +@NotIntercept +public class RemoveHandwritingController extends BaseController { + + + @Autowired + private BRemoveHandwritingHandle bRemoveHandwritingHandle; + + @RequestMapping("/repair") + @CacheResult + public R repair(BRemoveHandwritingRequest request) { + + RemoveHandwritingResp resp = new RemoveHandwritingResp(); + + + ApiR bR = bRemoveHandwritingHandle.handle(request); + if (bR.isSuccess()) { + + BRemoveHandwritingResp bRemoveHandwritingResp = bR.getData(); + + resp.setImageBase64(bRemoveHandwritingResp.getImageProcessed()); + resp.setPdfFileSize(bRemoveHandwritingResp.getPdfFileSize()); + + + return R.ok().setData(resp); + + + } + + return R.error(); + } + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/doc/RemoveMoireController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/doc/RemoveMoireController.java new file mode 100644 index 0000000..d1e6f62 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/doc/RemoveMoireController.java @@ -0,0 +1,60 @@ +package com.heyu.api.controller.doc; + + +import com.heyu.api.baidu.handle.doc.BRemoveMoireHandle; +import com.heyu.api.baidu.request.doc.BRemoveMoireRequest; +import com.heyu.api.baidu.response.doc.BRemoveMoireResp; +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.resp.doc.RemoveMoireResp; +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://console.bce.baidu.com/support/?_=1740667714316×tamp=1740671115065#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E6%96%87%E6%A1%A3%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86&api=rest%2F2.0%2Fimage-process%2Fv1%2Fremove_moire&method=post + * + * 图片去摩尔纹 + * + * 去除翻拍电脑、手机等显示屏照片中的摩尔纹,使图片更加清晰。示例图如下: + * + * + */ +@Slf4j +@RestController +@RequestMapping("/doc") +@NotIntercept +public class RemoveMoireController { + + + @Autowired + private BRemoveMoireHandle bRemoveMoireHandle; + + + @RequestMapping("/repair") + @CacheResult + public R repair(BRemoveMoireRequest request) { + + RemoveMoireResp resp = new RemoveMoireResp(); + + ApiR bR = bRemoveMoireHandle.handle(request); + if (bR.isSuccess()) { + BRemoveMoireResp bRemoveMoireResp = bR.getData(); + + + resp.setImageBase64(bRemoveMoireResp.getImageProcessed()); + resp.setPdfFileSize(bRemoveMoireResp.getPdfFileSize()); + + return R.ok().setData(resp); + + + } + + return R.error(); + } + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/doc/DocClassifyResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/doc/DocClassifyResp.java new file mode 100644 index 0000000..2ad9a83 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/doc/DocClassifyResp.java @@ -0,0 +1,19 @@ +package com.heyu.api.resp.doc; + + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + +@Data +public class DocClassifyResp extends BaseResp { + + /*** + * 分类置信度 + */ + private Double probablity; + /*** + * 类别信息,当前可输出类别列表见下文「附录:类别列表」 + */ + private String type; + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/doc/DocCropEnhanceResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/doc/DocCropEnhanceResp.java new file mode 100644 index 0000000..2cce29d --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/doc/DocCropEnhanceResp.java @@ -0,0 +1,22 @@ +package com.heyu.api.resp.doc; + + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + +@Data +public class DocCropEnhanceResp extends BaseResp { + + /*** + * 返回处理后的图片,base64编码,如请求参数 scan_type = 1&enhance_type =0,则返回原图 + */ + private String imageProcessed; + + + /*** + * 传入PDF文件的总页数,当 pdf_file 参数有效时返回该字段 + */ + private String pdfFileSize; + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/doc/DocRepairResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/doc/DocRepairResp.java new file mode 100644 index 0000000..a3d0615 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/doc/DocRepairResp.java @@ -0,0 +1,8 @@ +package com.heyu.api.resp.doc; + +import com.heyu.api.resp.CommonImageUrlResp; +import lombok.Data; + +@Data +public class DocRepairResp extends CommonImageUrlResp { +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/doc/RemoveHandwritingResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/doc/RemoveHandwritingResp.java new file mode 100644 index 0000000..a34f611 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/doc/RemoveHandwritingResp.java @@ -0,0 +1,22 @@ +package com.heyu.api.resp.doc; + + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + +@Data +public class RemoveHandwritingResp extends BaseResp { + /*** + * 返回处理后的图片,base64编码 + */ + private String imageBase64; + + + /*** + * + * 传入PDF文件的总页数,当 pdf_file 参数有效时返回该字段 + * + */ + private String pdfFileSize; + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/doc/RemoveMoireResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/doc/RemoveMoireResp.java new file mode 100644 index 0000000..cde6ab1 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/doc/RemoveMoireResp.java @@ -0,0 +1,22 @@ +package com.heyu.api.resp.doc; + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + +@Data +public class RemoveMoireResp extends BaseResp { + + + /*** + * 返回处理后的图片,base64编码 + */ + private String imageBase64; + + + /*** + * + * 传入PDF文件的总页数,当 pdf_file 参数有效时返回该字段 + * + */ + private String pdfFileSize; +}