Skip to content

Commit 40fb393

Browse files
committed
更新 readme
1 parent f97f92a commit 40fb393

File tree

4 files changed

+74
-12
lines changed

4 files changed

+74
-12
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,11 @@ Y = 0 对应校验码 '1'
216216
- 计算量小,适合实时验证
217217
- 具有良好的容错性能
218218
219+
## 算法
220+
221+
![中华人民共和国居民身份证 OCR 识别与图像处理系统算法](./docs/diagrams/中华人民共和国居民身份证OCR识别系统.png)
222+
223+
219224
## 项目文档
220225
221226
<div align="center" style="margin: 20px 0">

docs/diagrams/sequence.puml

Lines changed: 66 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
skinparam ParticipantPadding 20
44
skinparam BoxPadding 10
5-
skinparam SequenceGroupBodyBackgroundColor transparent
5+
skinparam SequenceGroupBodyBackgroundColor white
6+
skinparam ParticipantFontStyle bold
7+
skinparam BoxFontStyle bold
8+
9+
!theme aws-orange
610

711
actor User
812
participant "主系统" as Main
@@ -12,16 +16,34 @@ participant "视图" as View
1216
participant "OpenCV" as OpenCV
1317
participant "Tesseract" as Tesseract
1418
database "日志" as Logger
19+
database "临时文件" as TempFiles
1520

16-
box "系统初始化" #LightBlue
21+
box "系统初始化阶段" #LightBlue
1722
User -> Main: 启动系统
1823
activate Main
24+
1925
Main -> OpenCV: 加载OpenCV库
20-
Main -> Tesseract: 设置Tesseract路径
21-
Main -> Logger: 记录初始化信息
26+
activate OpenCV
27+
OpenCV --> Main: 返回加载状态
28+
deactivate OpenCV
29+
30+
Main -> Tesseract: 初始化OCR引擎
31+
activate Tesseract
32+
Tesseract -> Tesseract: 设置中文识别模型
33+
Tesseract --> Main: 返回初始化状态
34+
deactivate Tesseract
35+
36+
Main -> Logger: 初始化日志系统
37+
activate Logger
38+
Logger --> Main: 确认日志就绪
39+
deactivate Logger
40+
2241
Main -> Controller: 创建控制器实例
42+
activate Controller
2343
Controller -> Model: 创建模型实例
2444
Controller -> View: 创建视图实例
45+
Controller --> Main: 初始化完成
46+
deactivate Controller
2547
end box
2648

2749
box "图像处理流程" #LightYellow
@@ -31,10 +53,31 @@ box "图像处理流程" #LightYellow
3153

3254
Controller -> Model: 处理图像(图像路径)
3355
activate Model
34-
Model -> OpenCV: 图像预处理
35-
OpenCV --> Model: 返回处理后图像
36-
Model -> Tesseract: OCR识别
56+
57+
Model -> OpenCV: 读取图像
58+
activate OpenCV
59+
OpenCV --> Model: 返回图像矩阵
60+
61+
Model -> OpenCV: 转换为灰度图像
62+
OpenCV --> Model: 返回灰度图像
63+
64+
Model -> OpenCV: 应用高斯模糊
65+
OpenCV --> Model: 返回模糊图像
66+
67+
Model -> OpenCV: Otsu二值化处理
68+
OpenCV --> Model: 返回二值化图像
69+
deactivate OpenCV
70+
71+
Model -> TempFiles: 保存处理后图像
72+
activate TempFiles
73+
TempFiles --> Model: 返回临时文件路径
74+
deactivate TempFiles
75+
76+
Model -> Tesseract: OCR识别(处理后图像)
77+
activate Tesseract
3778
Tesseract --> Model: 返回识别文本
79+
deactivate Tesseract
80+
3881
Model --> Controller: 返回处理结果
3982
deactivate Model
4083

@@ -43,16 +86,30 @@ box "图像处理流程" #LightYellow
4386

4487
Controller -> View: 显示识别结果
4588
activate View
89+
View -> View: 格式化显示信息
4690
View --> User: 展示结果
4791
deactivate View
4892

4993
Controller -> Logger: 记录处理日志
94+
activate Logger
95+
Logger --> Controller: 确认日志记录
96+
deactivate Logger
97+
98+
Controller -> TempFiles: 清理临时文件
99+
activate TempFiles
100+
TempFiles --> Controller: 清理完成
101+
deactivate TempFiles
102+
50103
deactivate Controller
51104
end box
52105

53-
box "错误处理" #LightPink
106+
box "错误处理流程" #LightPink
54107
Main -> Logger: 记录异常信息
55-
Logger --> User: 显示错误信息
108+
activate Logger
109+
Logger -> View: 传递错误信息
110+
View --> User: 显示错误提示
111+
Logger --> Main: 确认错误已记录
112+
deactivate Logger
56113
end box
57114

58115
@enduml
162 KB
Loading

src/main/java/xin/ctkqiang/模型/身份证处理模型.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ public class 身份证处理模型 {
2525
* @param 图像路径 输入的身份证图像文件的存储路径。
2626
* @return 处理后的图像文件的存储路径,如果图像读取失败则返回null。
2727
*/
28-
private String 创建临时文件(@NotNull String 文件前缀) {
29-
String 临时文件夹路径 = System.getProperty("user.dir") + File.separator + "temp";
30-
File 临时目录 = new File(临时文件夹路径);
28+
private final String 创建临时文件(@NotNull String 文件前缀) {
29+
final String 临时文件夹路径 = System.getProperty("user.dir") + File.separator + "temp";
30+
final File 临时目录 = new File(临时文件夹路径);
3131

3232
if (!临时目录.exists() && !临时目录.mkdirs()) {
3333
日志记录器.错误("无法创建临时文件夹:" + 临时文件夹路径);

0 commit comments

Comments
 (0)