diff --git a/OCRTool/.idea/workspace.xml b/OCRTool/.idea/workspace.xml
index 5812d76..b3975c7 100644
--- a/OCRTool/.idea/workspace.xml
+++ b/OCRTool/.idea/workspace.xml
@@ -13,11 +13,19 @@
+
+
+
+
+
+
+
+
@@ -73,6 +81,7 @@
"RequestMappingsPanelWidth1": "75",
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
+ "SONARLINT_PRECOMMIT_ANALYSIS": "true",
"Spring Boot.MySpringBootApplication.executor": "Run",
"git-widget-placeholder": "main",
"kotlin-language-version-configured": "true",
@@ -143,6 +152,7 @@
+
@@ -168,7 +178,15 @@
1713764755375
-
+
+
+ 1719453146278
+
+
+
+ 1719453146278
+
+
@@ -206,16 +224,26 @@
file://$PROJECT_DIR$/src/main/java/com/bonus/core/OCRRecognition.java
- 29
+ 33
+
+ file://$PROJECT_DIR$/src/main/java/com/bonus/core/MySpringBootApplication.java
+ 47
+
+
file://$PROJECT_DIR$/src/main/java/com/bonus/core/OCRRecognition.java
- 109
-
+ 112
+
+
+
+
+
+
diff --git a/OCRTool/pom.xml b/OCRTool/pom.xml
index c17a142..aa61e0d 100644
--- a/OCRTool/pom.xml
+++ b/OCRTool/pom.xml
@@ -40,6 +40,7 @@
gson
2.8.9
+
diff --git a/OCRTool/src/main/java/com/bonus/core/IDCardInfoDTO.java b/OCRTool/src/main/java/com/bonus/core/IDCardInfoDTO.java
new file mode 100644
index 0000000..881ab99
--- /dev/null
+++ b/OCRTool/src/main/java/com/bonus/core/IDCardInfoDTO.java
@@ -0,0 +1,99 @@
+package com.bonus.core;
+
+public class IDCardInfoDTO {
+ private int code = 2000;
+ private String msg = "身份证信息提取完整";
+ private Data data;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public class Data {
+ private String issuingAuthority = "";
+ private String validTime = "";
+ private String name = "";
+ private String gender = "";
+ private String ethnicity = "";
+ private String dateOfBirth = "";
+ private String address = "";
+ private String idNumber = "";
+
+ public String getIssuingAuthority() {
+ return issuingAuthority;
+ }
+
+ public void setIssuingAuthority(String issuingAuthority) {
+ this.issuingAuthority = issuingAuthority;
+ }
+
+ public String getValidTime() {
+ return validTime;
+ }
+
+ public void setValidTime(String validTime) {
+ this.validTime = validTime;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getGender() {
+ return gender;
+ }
+
+ public void setGender(String gender) {
+ this.gender = gender;
+ }
+
+ public String getEthnicity() {
+ return ethnicity;
+ }
+
+ public void setEthnicity(String ethnicity) {
+ this.ethnicity = ethnicity;
+ }
+
+ public String getDateOfBirth() {
+ return dateOfBirth;
+ }
+
+ public void setDateOfBirth(String dateOfBirth) {
+ this.dateOfBirth = dateOfBirth;
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public String getIdNumber() {
+ return idNumber;
+ }
+
+ public void setIdNumber(String idNumber) {
+ this.idNumber = idNumber;
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/OCRTool/src/main/java/com/bonus/core/MySpringBootApplication.java b/OCRTool/src/main/java/com/bonus/core/MySpringBootApplication.java
index a043354..c767200 100644
--- a/OCRTool/src/main/java/com/bonus/core/MySpringBootApplication.java
+++ b/OCRTool/src/main/java/com/bonus/core/MySpringBootApplication.java
@@ -23,7 +23,7 @@ public class MySpringBootApplication {
// String filePath1 = "/Users/wangvivi/Desktop/Code/ocrtest/images/1.jpg";
// String filePath2 = "/Users/wangvivi/Desktop/Code/ocrtest/images/2.jpg";
// app.callExtractIdentityInfoByLocalPath(filePath1,filePath2);
-// app.callExtractIdentityInfoByBase64Data(filePath1, filePath2);
+// app.callExtractIdentityInfoByLocalPath1(filePath1, "");
}
private static ApplicationContext context;
@@ -38,6 +38,17 @@ public class MySpringBootApplication {
logger.info(javaString);
}
+ public void callExtractIdentityInfoByLocalPath1(String filePath1, String filePath2 ) {
+ OCRRecognition myComponent = context.getBean(OCRRecognition.class);
+ IdentifyRecognitionParams params = new IdentifyRecognitionParams();
+ params.setType(IdentifyRecognitionParams.RecognitionType.IDENTITY_CARD_PATH);
+ params.setRecognitionFrontData(filePath1);
+ params.setRecognitionBackData(filePath2);
+ IDCardInfoDTO javaString = myComponent.extractIDInfo(params);
+ logger.info("身份证信息是:");
+ }
+
+
public String callExtractIdentityInfoByBase64Data(String file1Data, String file2Data ) {
OCRRecognition myComponent = context.getBean(OCRRecognition.class);
diff --git a/OCRTool/src/main/java/com/bonus/core/OCRRecognition.java b/OCRTool/src/main/java/com/bonus/core/OCRRecognition.java
index 193dff4..e6341fa 100644
--- a/OCRTool/src/main/java/com/bonus/core/OCRRecognition.java
+++ b/OCRTool/src/main/java/com/bonus/core/OCRRecognition.java
@@ -1,4 +1,5 @@
package com.bonus.core;
+import com.google.gson.Gson;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@@ -26,6 +27,9 @@ public class OCRRecognition {
private static final String BASE64_PATTERN = "^[A-Za-z0-9+/]+={0,2}$";
+ /**
+ *根据传入的身份证的正反面进行识别和解析,返回身份证的8个字段信息的json字符串
+ */
public String extractInfo(IdentifyRecognitionParams recognitionParams){
Process proc;
List stringList = new ArrayList<>();
@@ -99,6 +103,16 @@ public class OCRRecognition {
return lastElement;
}
+ /**
+ *据传入的身份证的正反面进行识别和解析,返回身份证的IDCardInfoDTO 对象,当code=2000时,身份证信息是完整
+ */
+ public IDCardInfoDTO extractIDInfo(IdentifyRecognitionParams recognitionParams){
+ String result = extractInfo(recognitionParams);
+ Gson gson = new Gson();
+ IDCardInfoDTO response = gson.fromJson(result, IDCardInfoDTO.class);
+ return response;
+ }
+
private void passParameter(OutputStream outputStream, byte[] input) throws IOException {
int offset = 0;
// 设置每次写入的批次大小