Skip to content

Commit ce35bec

Browse files
authored
Merge pull request #221 from 563750789/master
update CI demo
2 parents ce24ff3 + 8a79d91 commit ce35bec

File tree

11 files changed

+424
-1
lines changed

11 files changed

+424
-1
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.qcloud</groupId>
66
<artifactId>cos_api</artifactId>
7-
<version>5.6.231</version>
7+
<version>5.6.233</version>
88
<packaging>jar</packaging>
99
<name>cos-java-sdk</name>
1010
<description>java sdk for qcloud cos</description>

src/main/java/com/qcloud/cos/COS.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3293,6 +3293,8 @@ SelectObjectContentResult selectObjectContent(SelectObjectContentRequest selectR
32933293
UpdateFileMetaIndexResponse updateFileMetaIndex(UpdateFileMetaIndexRequest customRequest);
32943294

32953295
MediaTemplateResponseV2 createMediaTemplateV2(MediaTemplateRequestV2 request);
3296+
3297+
ImageOCRResponse imageOCR(ImageOCRRequest request);
32963298
}
32973299

32983300

src/main/java/com/qcloud/cos/COSClient.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5333,6 +5333,20 @@ public MediaTemplateResponseV2 createMediaTemplateV2(MediaTemplateRequestV2 temp
53335333
return invoke(request, new Unmarshallers.CICommonUnmarshaller<MediaTemplateResponseV2>(MediaTemplateResponseV2.class));
53345334
}
53355335

5336+
@Override
5337+
public ImageOCRResponse imageOCR(ImageOCRRequest ocrRequest) {
5338+
CosHttpRequest<ImageOCRRequest> request = createRequest(ocrRequest.getBucketName(), ocrRequest.getObjectKey(), ocrRequest, HttpMethodName.GET);
5339+
request.addParameter("ci-process","OCR");
5340+
addParameterIfNotNull(request, "detect-url", ocrRequest.getDetectUrl());
5341+
addParameterIfNotNull(request, "type", ocrRequest.getType());
5342+
addParameterIfNotNull(request, "language-type", ocrRequest.getLanguageType());
5343+
addParameterIfNotNull(request, "ispdf", String.valueOf(ocrRequest.getPdf()));
5344+
addParameterIfNotNull(request, "pdf-pagenumber", ocrRequest.getPdfPageNumber());
5345+
addParameterIfNotNull(request, "isword", String.valueOf(ocrRequest.getWord()));
5346+
addParameterIfNotNull(request, "enable-word-polygon", String.valueOf(ocrRequest.getEnableWordPolygon()));
5347+
return invoke(request, new Unmarshallers.CICommonUnmarshaller<ImageOCRResponse>(ImageOCRResponse.class));
5348+
}
5349+
53365350
public String generateCosDomainPrivateM3U8Url(PrivateM3U8Request privateM3U8Request) {
53375351
CosHttpRequest<PrivateM3U8Request> request = createRequest(privateM3U8Request.getBucketName(), privateM3U8Request.getObject(), privateM3U8Request, HttpMethodName.GET);
53385352
request.addParameter("ci-process","pm3u8");
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.qcloud.cos.demo.ci;
2+
3+
import com.fasterxml.jackson.core.JsonProcessingException;
4+
import com.qcloud.cos.COSClient;
5+
import com.qcloud.cos.model.ciModel.ai.ImageOCRRequest;
6+
import com.qcloud.cos.model.ciModel.ai.ImageOCRResponse;
7+
import com.qcloud.cos.utils.Jackson;
8+
9+
import java.io.UnsupportedEncodingException;
10+
11+
/**
12+
* OCR 同步请求demo https://cloud.tencent.com/document/product/460/63227
13+
*/
14+
public class OcrDemo {
15+
16+
public static void main(String[] args) throws JsonProcessingException, UnsupportedEncodingException {
17+
// 1 初始化用户身份信息(secretId, secretKey)。
18+
COSClient client = ClientUtils.getTestClient();
19+
// 2 调用要使用的方法。
20+
imageOCR(client);
21+
}
22+
23+
/**
24+
* imageOCR 通用文字识别功能(Optical Character Recognition,OCR)
25+
* 基于行业前沿的深度学习技术,将图片上的文字内容,智能识别为可编辑的文本
26+
* 可应用于随手拍扫描、纸质文档电子化、电商广告审核等多种场景,大幅提升信息处理效率。
27+
*/
28+
public static void imageOCR(COSClient client) {
29+
//1.创建任务请求对象
30+
ImageOCRRequest request = new ImageOCRRequest();
31+
//2.添加请求参数 参数详情请见api接口文档
32+
request.setBucketName("demo-1234567890");
33+
//2.1设置图片位置或直接传入图片的url
34+
request.setObjectKey("1.jpg");
35+
// request.setDetectUrl("https://demo-123456789.cos.ap-chongqing.myqcloud.com/1.png");
36+
//3.调用接口,获取任务响应对象
37+
ImageOCRResponse response = client.imageOCR(request);
38+
System.out.println(Jackson.toJsonString(response));
39+
}
40+
41+
}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
package com.qcloud.cos.model.ciModel.ai;
2+
3+
import com.qcloud.cos.internal.CosServiceRequest;
4+
5+
public class ImageOCRRequest extends CosServiceRequest {
6+
private String bucketName;
7+
private String objectKey; // 对象文件名,例如:folder/document.jpg
8+
private String detectUrl; // 处理的图片链接
9+
private String type; // ocr 的识别类型
10+
private String languageType; // 识别语言类型
11+
private Boolean isPdf = false; // 是否开启 PDF 识别
12+
private Integer pdfPageNumber = 1; // 需要识别的 PDF 页面的对应页码
13+
private Boolean isWord = false; // 是否需要返回单字信息
14+
private Boolean enableWordPolygon = false; // 是否开启单字的四点定位坐标输出
15+
16+
public String getBucketName() {
17+
return bucketName;
18+
}
19+
20+
public void setBucketName(String bucketName) {
21+
this.bucketName = bucketName;
22+
}
23+
24+
public String getObjectKey() {
25+
return objectKey;
26+
}
27+
28+
public void setObjectKey(String objectKey) {
29+
this.objectKey = objectKey;
30+
}
31+
32+
public String getDetectUrl() {
33+
return detectUrl;
34+
}
35+
36+
public void setDetectUrl(String detectUrl) {
37+
this.detectUrl = detectUrl;
38+
}
39+
40+
public String getType() {
41+
return type;
42+
}
43+
44+
public void setType(String type) {
45+
this.type = type;
46+
}
47+
48+
public String getLanguageType() {
49+
return languageType;
50+
}
51+
52+
public void setLanguageType(String languageType) {
53+
this.languageType = languageType;
54+
}
55+
56+
public Boolean getPdf() {
57+
return isPdf;
58+
}
59+
60+
public void setPdf(Boolean pdf) {
61+
isPdf = pdf;
62+
}
63+
64+
public Integer getPdfPageNumber() {
65+
return pdfPageNumber;
66+
}
67+
68+
public void setPdfPageNumber(Integer pdfPageNumber) {
69+
this.pdfPageNumber = pdfPageNumber;
70+
}
71+
72+
public Boolean getWord() {
73+
return isWord;
74+
}
75+
76+
public void setWord(Boolean word) {
77+
isWord = word;
78+
}
79+
80+
public Boolean getEnableWordPolygon() {
81+
return enableWordPolygon;
82+
}
83+
84+
public void setEnableWordPolygon(Boolean enableWordPolygon) {
85+
this.enableWordPolygon = enableWordPolygon;
86+
}
87+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package com.qcloud.cos.model.ciModel.ai;
2+
3+
import com.qcloud.cos.model.CosServiceResult;
4+
import com.thoughtworks.xstream.annotations.XStreamAlias;
5+
import com.thoughtworks.xstream.annotations.XStreamImplicit;
6+
7+
import java.util.List;
8+
9+
@XStreamAlias("Response")
10+
public class ImageOCRResponse extends CosServiceResult {
11+
12+
@XStreamImplicit(itemFieldName = "TextDetections")
13+
private List<TextDetection> textDetections; // 检测到的文本信息
14+
15+
@XStreamAlias("Language")
16+
private String language; // 检测到的语言类型
17+
18+
@XStreamAlias("Angel")
19+
private Float angel; // 图片旋转角度
20+
21+
@XStreamAlias("PdfPageSize")
22+
private Integer pdfPageSize; // PDF的总页数
23+
24+
public List<TextDetection> getTextDetections() {
25+
return textDetections;
26+
}
27+
28+
public void setTextDetections(List<TextDetection> textDetections) {
29+
this.textDetections = textDetections;
30+
}
31+
32+
public String getLanguage() {
33+
return language;
34+
}
35+
36+
public void setLanguage(String language) {
37+
this.language = language;
38+
}
39+
40+
public Float getAngel() {
41+
return angel;
42+
}
43+
44+
public void setAngel(Float angel) {
45+
this.angel = angel;
46+
}
47+
48+
public Integer getPdfPageSize() {
49+
return pdfPageSize;
50+
}
51+
52+
public void setPdfPageSize(Integer pdfPageSize) {
53+
this.pdfPageSize = pdfPageSize;
54+
}
55+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.qcloud.cos.model.ciModel.ai;
2+
3+
import com.thoughtworks.xstream.annotations.XStreamAlias;
4+
5+
public class ItemPolygon extends OcrPolygon{
6+
7+
@XStreamAlias("Width")
8+
private Integer width; // 宽
9+
10+
@XStreamAlias("Height")
11+
private Integer height; // 高
12+
13+
public Integer getWidth() {
14+
return width;
15+
}
16+
17+
public void setWidth(Integer width) {
18+
this.width = width;
19+
}
20+
21+
public Integer getHeight() {
22+
return height;
23+
}
24+
25+
public void setHeight(Integer height) {
26+
this.height = height;
27+
}
28+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.qcloud.cos.model.ciModel.ai;
2+
3+
import com.thoughtworks.xstream.annotations.XStreamAlias;
4+
5+
public class OcrPolygon {
6+
@XStreamAlias("X")
7+
private Integer x; // 横坐标
8+
9+
@XStreamAlias("Y")
10+
private Integer y; // 纵坐标
11+
12+
public Integer getX() {
13+
return x;
14+
}
15+
16+
public void setX(Integer x) {
17+
this.x = x;
18+
}
19+
20+
public Integer getY() {
21+
return y;
22+
}
23+
24+
public void setY(Integer y) {
25+
this.y = y;
26+
}
27+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.qcloud.cos.model.ciModel.ai;
2+
3+
import com.thoughtworks.xstream.annotations.XStreamAlias;
4+
import com.thoughtworks.xstream.annotations.XStreamImplicit;
5+
6+
import java.util.List;
7+
8+
public class OcrWord {
9+
@XStreamAlias("Confidence")
10+
private Integer confidence; // 置信度 0 ~ 100
11+
12+
@XStreamAlias("Character")
13+
private String character; // 候选字
14+
15+
@XStreamImplicit(itemFieldName = "WordCoordPoint")
16+
private List<OcrPolygon> wordCoordPoint; // 单字在原图
17+
18+
public Integer getConfidence() {
19+
return confidence;
20+
}
21+
22+
public void setConfidence(Integer confidence) {
23+
this.confidence = confidence;
24+
}
25+
26+
public String getCharacter() {
27+
return character;
28+
}
29+
30+
public void setCharacter(String character) {
31+
this.character = character;
32+
}
33+
34+
public List<OcrPolygon> getWordCoordPoint() {
35+
return wordCoordPoint;
36+
}
37+
38+
public void setWordCoordPoint(List<OcrPolygon> wordCoordPoint) {
39+
this.wordCoordPoint = wordCoordPoint;
40+
}
41+
}

0 commit comments

Comments
 (0)