├── .github
└── workflows
│ └── maven-publish.yml
├── .gitignore
├── LICENSE
├── README.md
├── pom.xml
├── settings.xml
├── src
├── main
│ ├── java
│ │ └── top
│ │ │ └── gcszhn
│ │ │ └── d4ocr
│ │ │ ├── OCREngine.java
│ │ │ ├── OCREngineOldImpl.java
│ │ │ └── utils
│ │ │ ├── IOUtils.java
│ │ │ ├── ImageUtils.java
│ │ │ ├── LogUtils.java
│ │ │ └── ONNXRuntimeUtils.java
│ └── resources
│ │ └── d4
│ │ ├── common_old.onnx
│ │ └── common_old_charset.json
└── test
│ └── java
│ └── top
│ └── gcszhn
│ └── d4ocr
│ └── OCREngineTest.java
├── templete
└── license.temp
└── testData
├── 2AMLyA.jpg
├── 8A62N1.png
├── AENZ.png
├── ALNQ.png
├── ALOX.png
├── BFOY.png
├── BGKR.png
├── BOPY.png
├── DKQT.png
├── KVXZ.png
├── ORVW.png
├── f233g.png
├── jepv.png
├── 九乘六等于?.png
└── 极速换新.png
/.github/workflows/maven-publish.yml:
--------------------------------------------------------------------------------
1 | # This workflow will build a package using Maven and then publish it to GitHub packages when a release is created
2 | # For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#apache-maven-with-a-settings-path
3 |
4 | name: Maven Package
5 |
6 | on:
7 | release:
8 | types: [created]
9 | jobs:
10 | build:
11 |
12 | runs-on: ubuntu-latest
13 | permissions:
14 | contents: read
15 | packages: write
16 |
17 | steps:
18 | - uses: actions/checkout@v3
19 | - name: Set up JDK 11
20 | uses: actions/setup-java@v3
21 | with:
22 | java-version: '11'
23 | distribution: 'temurin'
24 | server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
25 | settings-path: ${{ github.workspace }} # location for the settings.xml file
26 |
27 | - name: Build with Maven
28 | run: mvn -B package --file pom.xml
29 |
30 | - name: Publish to GitHub Packages Apache Maven
31 | run: mvn deploy -s $GITHUB_WORKSPACE/settings.xml
32 | env:
33 | GITHUB_TOKEN: ${{ github.token }}
34 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | !.mvn/wrapper/maven-wrapper.jar
3 | !**/src/main/**/target/
4 | !**/src/test/**/target/
5 |
6 | ### IntelliJ IDEA ###
7 | .idea/modules.xml
8 | .idea/jarRepositories.xml
9 | .idea/compiler.xml
10 | .idea/libraries/
11 | *.iws
12 | *.iml
13 | *.ipr
14 |
15 | ### Eclipse ###
16 | .apt_generated
17 | .classpath
18 | .factorypath
19 | .project
20 | .settings
21 | .springBeans
22 | .sts4-cache
23 |
24 | ### NetBeans ###
25 | /nbproject/private/
26 | /nbbuild/
27 | /dist/
28 | /nbdist/
29 | /.nb-gradle/
30 | build/
31 | !**/src/main/**/build/
32 | !**/src/test/**/build/
33 |
34 | ### VS Code ###
35 | .vscode/
36 |
37 | ### Mac OS ###
38 | .DS_Store
39 |
40 | ### idea
41 | .idea/
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright [yyyy] [name of copyright owner]
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # ddddocr-for-java
2 |
3 |
4 | 
5 | 
6 | 
7 |
8 |
9 |
10 | 基于[sml2h3](https://github.com/sml2h3)开源的[ddddocr](https://github.com/sml2h3/ddddocr)构建的java开源项目。源项目只提供pypi版本,不能满足java开发者的需求,特此尝试开发本项目。
11 |
12 | ## 基本使用
13 | 目前只支持了ddddocr的OCR功能,使用了`common_old.onnx`模型。可以通过`mvn install`安装项目或者使用[github packages源](https://github.com/GCS-ZHN/ddddocr-for-java/packages),并添加maven依赖。
14 | ```xml
15 |
16 |
17 | github
18 | https://maven.pkg.github.com/gcs-zhn/ddddocr-for-java
19 |
20 | true
21 |
22 |
23 |
24 |
25 |
26 | top.gcszhn
27 | d4ocr
28 | 1.0
29 |
30 |
31 | ```
32 | 同时github的maven registry要求[登录认证](https://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException),即只允许github用户下载,不像maven中央仓库无需注册即可下载。具体配置有[官方文档](https://docs.github.com/cn/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry),主要是在`settings.xml`中配置server,注意token不是登录密码,需要自行创建,[快捷链接](https://github.com/settings/tokens)。
33 | ```xml
34 |
35 |
36 | github
37 | 你的github账号
38 | 你的github创建的具有下载package权限的token
39 |
40 |
41 | ```
42 | 下面是简单的示例代码
43 | ```java
44 | import java.awt.image.BufferedImage;
45 |
46 | import top.gcszhn.d4ocr.OCREngine;
47 | import top.gcszhn.d4ocr.utils.IOUtils;
48 |
49 | public class Test {
50 | public static void main(String[] args) {
51 | OCREngine engine = OCREngine.instance();
52 | BufferedImage image = IOUtils.read("AENZ.png");
53 | String predict = engine.recognize(image);
54 | System.out.println(predict);
55 | }
56 | }
57 | ```
58 |
59 | ## 声明
60 | 模型版权归原作者[sml2h3](https://github.com/sml2h3)所有,仅供学习交流使用,任何问题欢迎发issue。
61 |
62 |
63 | ## 温馨提示
64 | 编译版本使用java 11编译,字节码版本号为55,低版本java使用会报错,可以选择克隆本项目手动打包或者升级java(PS:java都17了,别坚守java 1.8了)。
65 |
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 | top.gcszhn
8 | d4ocr
9 | 1.0.1
10 | jar
11 | ddddocr for java
12 |
13 |
14 | UTF-8
15 | 11
16 | 11
17 |
18 |
19 |
20 |
21 |
22 | com.microsoft.onnxruntime
23 | onnxruntime
24 | 1.11.0
25 |
26 |
27 |
28 | com.alibaba
29 | fastjson
30 | 1.2.76
31 |
32 |
33 |
34 | org.projectlombok
35 | lombok
36 | 1.18.20
37 | provided
38 |
39 |
40 |
41 | org.slf4j
42 | slf4j-api
43 | 1.7.25
44 |
45 |
46 | org.slf4j
47 | jcl-over-slf4j
48 | 1.7.25
49 | runtime
50 |
51 |
52 |
53 | org.apache.logging.log4j
54 | log4j-api
55 | 2.17.2
56 |
57 |
58 | org.apache.logging.log4j
59 | log4j-core
60 | 2.17.2
61 |
62 |
63 |
64 | org.apache.logging.log4j
65 | log4j-slf4j-impl
66 | 2.17.2
67 |
68 |
69 | junit
70 | junit
71 | 4.13
72 | test
73 |
74 |
75 |
76 |
77 |
78 | maven-clean-plugin
79 | 3.1.0
80 |
81 |
82 |
83 | maven-resources-plugin
84 | 3.0.2
85 |
86 |
87 | maven-compiler-plugin
88 | 3.8.0
89 |
90 |
91 | maven-surefire-plugin
92 | 2.22.1
93 |
94 |
95 | true
96 |
97 |
98 |
99 |
100 | org.apache.maven.plugins
101 | maven-source-plugin
102 | 3.0.1
103 |
104 |
105 | attach-sources
106 |
107 | jar
108 |
109 |
110 |
111 |
112 |
113 | maven-project-info-reports-plugin
114 | 3.0.0
115 |
116 |
117 |
118 | com.mycila
119 | license-maven-plugin
120 | 4.1
121 |
122 |
123 |
124 | generate-sources
125 |
126 | remove
127 | format
128 |
129 |
130 |
131 |
132 | true
133 |
134 | ${project.basedir}/templete/license.temp
135 |
136 |
137 | **/*.properties
138 | **/*.sh
139 | **/*.yml
140 | .editorconfig
141 | .gitignore
142 | **/*.md
143 | **/*.xml
144 | **/*.txt
145 | **/*.vm
146 |
147 |
148 | true
149 |
150 | SLASHSTAR_STYLE
151 |
152 |
153 |
154 |
155 | org.projectlombok
156 | lombok-maven-plugin
157 | 1.18.20.0
158 |
159 |
160 | generate-sources
161 |
162 | delombok
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 | github
172 | Github maven package
173 | https://maven.pkg.github.com/gcs-zhn/ddddocr-for-java
174 |
175 |
176 |
--------------------------------------------------------------------------------
/settings.xml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 | github
9 | GCS-ZHN
10 | ${env.GITHUB_TOKEN}
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/main/java/top/gcszhn/d4ocr/OCREngine.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright © 2022 Zhang.H.N.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (thie "License");
5 | * You may not use this file except in compliance with the license.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://wwww.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language govering permissions and
14 | * limitations under the License.
15 | */
16 | package top.gcszhn.d4ocr;
17 |
18 | import java.awt.image.BufferedImage;
19 |
20 | /**
21 | * 统一的OCR引擎接口,所有引擎扩展需要实现该接口
22 | * @author GCS-ZHN
23 | * */
24 | public interface OCREngine {
25 | /**
26 | * OCR文本识别的抽象API
27 | * @param image 图像
28 | * @return 识别的文本
29 | */
30 | public String recognize(BufferedImage image);
31 | /**
32 | * 返回D4 OCR引擎实例
33 | * */
34 | public static OCREngine instance() {
35 | return new OCREngineOldImpl();
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/main/java/top/gcszhn/d4ocr/OCREngineOldImpl.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright © 2022 Zhang.H.N.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (thie "License");
5 | * You may not use this file except in compliance with the license.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://wwww.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language govering permissions and
14 | * limitations under the License.
15 | */
16 | package top.gcszhn.d4ocr;
17 |
18 |
19 | import ai.onnxruntime.OnnxTensor;
20 | import ai.onnxruntime.OrtSession;
21 | import com.alibaba.fastjson.JSONArray;
22 | import top.gcszhn.d4ocr.utils.IOUtils;
23 | import top.gcszhn.d4ocr.utils.ImageUtils;
24 | import top.gcszhn.d4ocr.utils.LogUtils;
25 | import top.gcszhn.d4ocr.utils.ONNXRuntimeUtils;
26 |
27 | import java.awt.image.BufferedImage;
28 | import java.io.File;
29 | import java.io.InputStream;
30 | import java.util.Arrays;
31 | import java.util.Map;
32 |
33 | /**
34 | * DDDD-OCR引擎,基于开源项目dddd-ocr的训练模型
35 | * @author GCS-ZHN
36 | * @apiNote https://github.com/sml2h3/ddddocr/
37 | */
38 | class OCREngineOldImpl implements OCREngine {
39 | /**字符集 */
40 | private static JSONArray charsetArray;
41 | /**ONNX模型文件 */
42 | private static File modelFile;
43 | /**模型资源的静态初始化 */
44 | static {
45 | try (InputStream is = OCREngineOldImpl.class.getResourceAsStream("/d4/common_old_charset.json")) {
46 | charsetArray = JSONArray.parseArray(new String(is.readAllBytes(), "UTF-8"));
47 | String javaTmpDir = System.getProperty("java.io.tmpdir", ".");
48 | File appTmpDir = new File(javaTmpDir, "d4ocr");
49 | appTmpDir.mkdirs();
50 | modelFile = new File(appTmpDir, "common_old.onnx");
51 | IOUtils.extractJarResource("/d4/common_old.onnx", modelFile);
52 | } catch (Exception e) {
53 | LogUtils.printMessage("模型配置加载异常", e, LogUtils.Level.ERROR);
54 | }
55 | }
56 |
57 | @Override
58 | public String recognize(BufferedImage image) {
59 | if (image == null) {
60 | LogUtils.printMessage("OCR输入图像不能为空", LogUtils.Level.ERROR);
61 | return null;
62 | }
63 | if (modelFile == null || !modelFile.exists() || charsetArray == null) {
64 | LogUtils.printMessage("OCR模型配置缺失", LogUtils.Level.ERROR);
65 | return null;
66 | }
67 |
68 | // 预处理图像
69 | image = ImageUtils.resize(image, 64 * image.getWidth() / image.getHeight(), 64);
70 | image = ImageUtils.toGray(image);
71 | long[] shape = {1, 1, image.getHeight(), image.getWidth()};
72 | float[] data = new float[(int)(shape[0] * shape[1] * shape[2] * shape[3])];
73 | image.getData().getPixels(0, 0, image.getWidth(), image.getHeight(), data);
74 | for (int i = 0; i < data.length; i++) {
75 | data[i] /= 255;
76 | data[i] = (float) ((data[i] - 0.5) / 0.5);
77 | }
78 | try (
79 | ONNXRuntimeUtils onnx = new ONNXRuntimeUtils();
80 | OnnxTensor inputTensor = onnx.createTensor(data, shape);
81 | OrtSession model = onnx.createSession(modelFile.getAbsolutePath());
82 | OrtSession.Result result = model.run(Map.of("input1", inputTensor))) {
83 |
84 | OnnxTensor indexTensor = (OnnxTensor) result.get(0);
85 | LogUtils.printMessage("score type: " + indexTensor.getInfo().type.name(), LogUtils.Level.DEBUG);
86 | LogUtils.printMessage("score shape: " + Arrays.toString(indexTensor.getInfo().getShape()), LogUtils.Level.DEBUG);
87 | long[][] index = (long[][])indexTensor.getValue();
88 |
89 | StringBuilder words = new StringBuilder();
90 | for (long i: index[0]) {
91 | words.append((String) charsetArray.get((int) i));
92 | }
93 | return words.toString();
94 | } catch (Exception e) {
95 | LogUtils.printMessage("OCR识别异常", e, LogUtils.Level.ERROR);
96 | return null;
97 | }
98 | }
99 | }
100 |
--------------------------------------------------------------------------------
/src/main/java/top/gcszhn/d4ocr/utils/IOUtils.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright © 2022 Zhang.H.N.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (thie "License");
5 | * You may not use this file except in compliance with the license.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://wwww.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language govering permissions and
14 | * limitations under the License.
15 | */
16 | package top.gcszhn.d4ocr.utils;
17 |
18 | import javax.imageio.ImageIO;
19 | import java.awt.image.BufferedImage;
20 | import java.io.File;
21 | import java.io.FileOutputStream;
22 | import java.io.IOException;
23 | import java.io.InputStream;
24 | import java.util.Base64;
25 |
26 | /**
27 | * IO工具类
28 | */
29 | public class IOUtils {
30 | /**
31 | * 将JAR包内资源提取出来
32 | * @param source jar内部文件URI
33 | * @param target 目标文件名
34 | * @throws IOException
35 | */
36 | public static void extractJarResource(String source, File target) throws IOException {
37 | try(InputStream in = IOUtils.class.getResourceAsStream(source);
38 | FileOutputStream out = new FileOutputStream(target)) {
39 | byte[] buffer = new byte[1 << 11];
40 | int len;
41 | while ((len = in.read(buffer)) != -1){
42 | out.write(buffer, 0, len);
43 | out.flush();
44 | }
45 | }
46 | }
47 | /**
48 | * 将图像保存为文件
49 | * @param image BufferedImage图像
50 | * @param formatName 图片格式,如jpg等
51 | * @param file 输出文件
52 | */
53 | public static void write(BufferedImage image, String formatName, File file) {
54 | try {
55 | ImageIO.write(image, formatName, file);
56 | } catch (Exception e) {
57 | LogUtils.printMessage(null, e, LogUtils.Level.ERROR);
58 | }
59 | }
60 |
61 | /**
62 | * 将字节数组储存到文件
63 | * @param byteArray 字节数组
64 | * @param file 输出文件
65 | */
66 | public static void write(byte[] byteArray, File file) {
67 | try (FileOutputStream outputStream = new FileOutputStream(file)) {
68 | outputStream.write(byteArray);
69 | } catch (Exception e) {
70 | LogUtils.printMessage(null, e, LogUtils.Level.ERROR);
71 | }
72 | }
73 |
74 | /**
75 | * 将base64编码数据解码并储存到文件
76 | * @param base64 编码字符串
77 | * @param file 输出文件
78 | */
79 | public static void write(String base64, File file) {
80 | try {
81 | write(Base64.getDecoder().decode(base64), file);
82 | } catch (Exception e) {
83 | LogUtils.printMessage(null, e, LogUtils.Level.ERROR);
84 | }
85 | }
86 |
87 | /**
88 | * 读取图像文件
89 | * @param imageFile 图像文件
90 | * @return 图像对象
91 | * @throws IOException
92 | */
93 | public static BufferedImage read(String imageFile) throws IOException {
94 | return ImageIO.read(new File(imageFile));
95 | }
96 | }
97 |
--------------------------------------------------------------------------------
/src/main/java/top/gcszhn/d4ocr/utils/ImageUtils.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright © 2022 Zhang.H.N.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (thie "License");
5 | * You may not use this file except in compliance with the license.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://wwww.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language govering permissions and
14 | * limitations under the License.
15 | */
16 | package top.gcszhn.d4ocr.utils;
17 |
18 | import javax.imageio.ImageIO;
19 |
20 | import java.awt.Graphics2D;
21 | import java.awt.Image;
22 | import java.awt.image.BufferedImage;
23 | import java.io.ByteArrayInputStream;
24 | import java.io.ByteArrayOutputStream;
25 | import java.util.Base64;
26 |
27 | /**
28 | * 图像处理工具类
29 | */
30 | public class ImageUtils {
31 | /**
32 | * 图像大小变换
33 | * @param image 旧图
34 | * @param width 宽度
35 | * @param height 高度
36 | * @return 新图
37 | */
38 | public static BufferedImage resize(BufferedImage image, int width, int height) {
39 | BufferedImage newImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
40 | Image tmp = image.getScaledInstance(width, height, Image.SCALE_SMOOTH);
41 | Graphics2D g2d = newImage.createGraphics();
42 | g2d.drawImage(tmp, 0, 0, null);
43 | g2d.dispose();
44 | return newImage;
45 | }
46 |
47 | /**
48 | * 将图像进行base64编码
49 | * @param image 图像
50 | * @param formatName 图像格式,如jpg等
51 | * @return 编码的字符串
52 | */
53 | public static String toBase64(BufferedImage image, String formatName) {
54 | try {
55 | return Base64.getEncoder().encodeToString(toByteArray(image, formatName));
56 | } catch (Exception e) {
57 | LogUtils.printMessage(null, e, LogUtils.Level.ERROR);
58 | }
59 | return null;
60 | }
61 |
62 | /**
63 | * 将图像转为字节数组
64 | * @param image 图像
65 | * @param formatName 图像格式
66 | * @return 产生的字节数组
67 | */
68 | public static byte[] toByteArray(BufferedImage image, String formatName) {
69 | try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
70 | ImageIO.write(image, formatName , outputStream);
71 | return outputStream.toByteArray();
72 | } catch (Exception e) {
73 | LogUtils.printMessage(null, e, LogUtils.Level.ERROR);
74 | }
75 | return null;
76 | }
77 |
78 | /**
79 | * 将base64编码的图像进行解码
80 | * @param base64 编码字符串
81 | * @return 解码产生的图像实例
82 | */
83 | public static BufferedImage toImage(String base64) {
84 | try {
85 | return toImage(Base64.getDecoder().decode(base64));
86 | } catch (Exception e) {
87 | LogUtils.printMessage(null, e, LogUtils.Level.ERROR);
88 | }
89 | return null;
90 | }
91 |
92 | /**
93 | * 将字节数组转化为图像
94 | * @param byteArray 字节数组信息
95 | * @return 产生的图像
96 | */
97 | public static BufferedImage toImage(byte[] byteArray) {
98 | try (ByteArrayInputStream inputStream = new ByteArrayInputStream(byteArray)) {
99 | return ImageIO.read(inputStream);
100 | } catch (Exception e) {
101 | LogUtils.printMessage(null, e, LogUtils.Level.ERROR);
102 | }
103 | return null;
104 | }
105 |
106 | /**
107 | * 将图像进行灰度处理
108 | * @param image 原始图像
109 | * @return 灰度图像
110 | */
111 | public static BufferedImage toGray(BufferedImage image) {
112 | BufferedImage target = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
113 | Graphics2D g2d = target.createGraphics();
114 | g2d.drawImage(image, 0, 0, null);
115 | g2d.dispose();
116 | return target;
117 | }
118 |
119 | /**
120 | * 将图像二值化处理
121 | * @param image 原始图像
122 | * @return 二值化图像
123 | */
124 | public static BufferedImage toBinary(BufferedImage image) {
125 | BufferedImage target = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_BYTE_BINARY);
126 | Graphics2D g2d = target.createGraphics();
127 | g2d.drawImage(image, 0, 0, null);
128 | g2d.dispose();
129 | return target;
130 | }
131 | }
132 |
--------------------------------------------------------------------------------
/src/main/java/top/gcszhn/d4ocr/utils/LogUtils.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright © 2022 Zhang.H.N.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (thie "License");
5 | * You may not use this file except in compliance with the license.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://wwww.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language govering permissions and
14 | * limitations under the License.
15 | */
16 | package top.gcszhn.d4ocr.utils;
17 |
18 | import org.slf4j.Logger;
19 | import org.slf4j.LoggerFactory;
20 |
21 | /**
22 | * 应用日志类
23 | * @author Zhang.H.N
24 | * @version 1.0
25 | */
26 | public class LogUtils {
27 | public enum Level {
28 | DEBUG, INFO, ERROR;
29 | }
30 | /**屏蔽构造函数 */
31 | private LogUtils(){};
32 | /**
33 | * 输出指定级别日志,指定信息源类名,并输出堆栈信息
34 | * @param message 信息内容
35 | * @param t 信息堆栈
36 | * @param level 信息级别
37 | * @param className 信息源类名
38 | */
39 | public static void printMessage(String message, Throwable t, Level level, String className) {
40 | Logger logger = LoggerFactory.getLogger(className);
41 | message = (t!=null&&message==null)?t.getMessage():message;
42 | switch(level) {
43 | case DEBUG:logger.debug(message, t);break;
44 | case INFO: logger.info(message, t);break;
45 | case ERROR:logger.error(message, t);break;
46 | default:logger.error("Unsupport log level");
47 | }
48 | }
49 | /**
50 | * 输出指定级别日志,指定信息源类名
51 | * @param message 信息内容
52 | * @param level 信息级别
53 | * @param className 信息源类名
54 | */
55 | public static void printMessage(String message, Level level, String className) {
56 | printMessage(message, null, level, className);
57 | }
58 | /**
59 | * 输出指定级别日志,并输出堆栈信息
60 | * @param message 信息内容
61 | * @param t 信息堆栈
62 | * @param level 信息级别
63 | */
64 | public static void printMessage(String message, Throwable t, Level level) {
65 | StackTraceElement[] stack = new Throwable().getStackTrace();
66 | printMessage(message, t, level, stack[stack.length > 1?1:0].getClassName());
67 | }
68 | /**
69 | * 输出指定级别日志,信息源类指定为本方法的调用类
70 | * @param message 信息内容
71 | * @param level 信息级别
72 | */
73 | public static void printMessage(String message, Level level) {
74 | StackTraceElement[] stack = new Throwable().getStackTrace();
75 | printMessage(message, null, level, stack[stack.length > 1?1:0].getClassName());
76 | }
77 | /**
78 | * 输入INFO级别日志,信息源类指定为本方法的调用类
79 | * @param message 信息内容
80 | */
81 | public static void printMessage(String message) {
82 | StackTraceElement[] stack = new Throwable().getStackTrace();
83 | printMessage(message, Level.INFO, stack[stack.length > 1?1:0].getClassName());
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/src/main/java/top/gcszhn/d4ocr/utils/ONNXRuntimeUtils.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright © 2022 Zhang.H.N.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (thie "License");
5 | * You may not use this file except in compliance with the license.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://wwww.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language govering permissions and
14 | * limitations under the License.
15 | */
16 | package top.gcszhn.d4ocr.utils;
17 |
18 | import ai.onnxruntime.OnnxTensor;
19 | import ai.onnxruntime.OrtEnvironment;
20 | import ai.onnxruntime.OrtSession;
21 |
22 | import java.nio.FloatBuffer;
23 | import java.util.Map;
24 |
25 | /**
26 | * ONNX运行时工具,基于微软开放的onnxruntime
27 | * @author GCS-ZHN
28 | */
29 | public class ONNXRuntimeUtils implements AutoCloseable {
30 | /**ONNX服务的环境 */
31 | private OrtEnvironment env = OrtEnvironment.getEnvironment();
32 |
33 | public OrtSession createSession(String modelPath) {
34 | try {
35 | return env.createSession(modelPath);
36 | } catch (Exception e) {
37 | LogUtils.printMessage("创建ONNX模型失败", e, LogUtils.Level.ERROR);
38 | return null;
39 | }
40 |
41 | }
42 |
43 | /**
44 | * 创建单精度浮点数张量
45 | * @param data 浮点缓存数据
46 | * @param shape 张量形状
47 | * @return 创建的ONNX张量
48 | */
49 | public OnnxTensor createTensor(FloatBuffer data, long[] shape) {
50 | try {
51 | return OnnxTensor.createTensor(env, data, shape);
52 | } catch (Exception e) {
53 | LogUtils.printMessage("创建张量失败", e, LogUtils.Level.ERROR);
54 | return null;
55 | }
56 | }
57 |
58 | /**
59 | * 创建单精度浮点数张量
60 | * @param data 浮点数组
61 | * @param shape 张量形状
62 | * @return 创建的ONNX张量
63 | */
64 | public OnnxTensor createTensor(float[] data, long[] shape) {
65 | return createTensor(FloatBuffer.wrap(data), shape);
66 | }
67 |
68 | /**
69 | * 关闭ONNX服务
70 | */
71 | @Override
72 | public void close() throws Exception {
73 | env.close();
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/src/main/resources/d4/common_old.onnx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GCS-ZHN/ddddocr-for-java/b7e705b67002b9d1676b3ca8eefd3f7daf0f9489/src/main/resources/d4/common_old.onnx
--------------------------------------------------------------------------------
/src/main/resources/d4/common_old_charset.json:
--------------------------------------------------------------------------------
1 | ["", "掀", "袜", "顧", "徕", "榱", "荪", "浡", "其", "炎", "玉", "恩", "劣", "徽", "廉", "桂", "拂",
2 | "鳊", "撤",
3 | "赏", "哮", "侄", "蓮", "И", "进", "饭", "饱", "优", "楸", "礻", "蜉", "營", "伙", "杌", "修", "榜",
4 | "准", "铒",
5 | "戏", "赭", "襟", "彘", "彩", "雁", "闽", "坎", "聂", "氡", "辜", "苁", "潆", "摁", "月", "稇", "而",
6 | "醴", "簉",
7 | "卑", "妖", "埽", "嘡", "醛", "見", "煎", "汪", "秽", "迄", "噭", "焉", "钌", "瑕", "玻", "仙", "蹑",
8 | "钀", "翦",
9 | "丰", "矗", "2", "胚", "镊", "镡", "鍊", "帖", "僰", "淀", "吒", "冲", "挡", "粼", "螈", "缵", "孺",
10 | "侦", "曷",
11 | "渐", "敷", "投", "宸", "祉", "柳", "尖", "梃", "淘", "臁", "躇", "撖", "惭", "狄", "聢", "官", "狴",
12 | "诬", "骄",
13 | "跻", "場", "姻", "钎", "藥", "綉", "驾", "舻", "黢", "鲦", "蜣", "渖", "绹", "佰", "怜", "三", "痪",
14 | "眍", "养",
15 | "角", "薜", "濑", "劳", "戟", "傎", "纫", "徉", "收", "稍", "虫", "螋", "鬲", "捌", "陡", "蓟", "邳",
16 | "蹢", "涉",
17 | "煋", "端", "懷", "椤", "埶", "廊", "免", "秫", "猢", "睐", "臺", "擀", "布", "麃", "彗", "汊", "芄",
18 | "遣", "胙",
19 | "另", "癯", "徭", "疢", "茆", "忡", "'", "烃", "笕", "薤", "肆", "熛", "過", "盖", "跷", "呷", "痿",
20 | "沖", "魍",
21 | "讣", "庤", "弑", "诩", "庵", "履", "暮", "始", "滟", "矅", "蛹", "鸿", "啃", "铋", "沿", "鐾", "酆",
22 | "團", "恙",
23 | "閥", "聒", "讵", "颠", "沾", "堅", "踣", "陴", "覃", "滙", "浐", "钇", "脆", "炙", "亮", "觌", "産",
24 | "汩", "鸭",
25 | "斄", "堆", "掭", "揞", "鹂", "郫", "瘅", "蚂", "揩", "学", "组", "浸", "腙", "耀", "嗛", "局", "蠓",
26 | "肠", "昏",
27 | "I", "岑", "镯", "憧", "油", "泸", "鸟", "潇", "蕻", "褒", "瞧", "旸", "昭", "庐", "鞒", "内", "痈",
28 | "己", "曙",
29 | "怠", "锟", "晞", "耢", "鲢", "醦", "糕", "療", "寇", "梵", "黾", "呻", "苒", "ü", "校", "嘏", "昃",
30 | "Ⅰ", "蕰",
31 | "凖", "嵛", "裨", "筏", "匜", "咋", "乏", "婵", "镂", "珰", "感", "蔗", "蚵", "庞", "弢", "槟", "口",
32 | "漉", "﹒",
33 | "咂", "俩", "增", "硐", "襙", "绉", "卿", "距", "璱", "猖", "铚", "郚", "嬖", "缒", "阃", "扞", "V",
34 | "望", "最",
35 | "浔", "骜", "赃", "闻", "砍", "奸", "灶", "以", "获", "鳎", "浦", "罐", "孓", "纭", "瘀", "普", "氰",
36 | "塮", "症",
37 | "顷", "们", "螓", "蛸", "鵰", "册", "美", "萨", "沘", "犰", "嫌", "名", ")", "懦", "滇", "F", "垡",
38 | "声", "毅",
39 | "隅", "鲎", "煨", "萦", "宜", "唇", "鯨", "邛", "杲", "赜", "长", "魂", "桠", "锇", "搓", "俘", "仰",
40 | "膘", "宦",
41 | "歹", "遁", "猃", "噉", "幂", "糜", "嗤", "周", "剂", "曦", "暧", "焖", "髻", "釐", "泰", "窟", "檎",
42 | "旧", "犀",
43 | "镄", "百", "取", "岍", "逗", "叽", "呃", "鲪", "萬", "陈", "7", "習", "区", "逄", "宏", "罡", "漭",
44 | "盗", "郿",
45 | "般", "谢", "倪", "纵", "婶", "砧", "揖", "扪", "濒", "愤", "茓", "浞", "子", "揄", "旌", "趄", "樊",
46 | "醑", "遄",
47 | "婚", "汶", "矩", "裈", "弊", "呱", "铳", "勿", "蚴", "忿", "褓", "缚", "酱", "璞", "庆", "除", "礌",
48 | "珩", "榨",
49 | "鼢", "逞", "容", "圯", "猛", "陌", "-", "嚯", "镘", "鱾", "睚", "猬", "杜", "鳓", "燈", "計", "咣",
50 | "炜", "睁",
51 | "箱", "邮", "略", "馇", "逐", "雀", "僬", "髯", "奖", "俱", "-", "绗", "犏", "辱", "忑", "挽", "康",
52 | "蝼", "栏",
53 | "模", "辒", "•", "儋", "罱", "墈", "会", "秀", "栈", "缔", "醜", "蚣", "阮", "鼗", "眼", "湧", "沁",
54 | "夥", "毕",
55 | "媚", "瘳", "痣", "搴", "闿", "遍", "焰", "岣", "舱", "埌", "麿", "嘿", "靽", "体", "想", "霓", "钛",
56 | "摽", "苑",
57 | "芳", "技", "綮", "钅", "燠", "栾", "年", "悱", "腹", "员", "呕", "闇", "嗫", "檩", "荒", "溱", "舨",
58 | "峙", "卒",
59 | "洑", "预", "弯", "蔷", "叵", "锯", "慈", "牧", "患", "贇", "偷", "鲜", "锓", "躔", "嚬", "烈", "娌",
60 | "嘲", "详",
61 | "麺", "舒", "厨", "徵", "葹", "只", "篦", "鹀", "剕", "驳", "聍", "黧", "砾", "暅", "褫", "呈", "森",
62 | "结", "龛",
63 | "钲", "轧", "扔", "蕹", "赵", "涒", "冯", "渲", "缭", "坚", "趼", "鲑", "倫", "门", "班", "垚", "鞍",
64 | "菘", "畐",
65 | "僇", "侉", "禢", "轳", "饦", "兽", "呯", "捂", "樨", "卧", "栝", "豭", "冶", "鉰", "申", "蜈", "印",
66 | "缨", "镫",
67 | "蕾", "圜", "扑", "娉", "烦", "缳", "广", "峄", "獒", "铔", "奁", "醚", "倥", "蹇", "阚", "镆", "煺",
68 | "德", "颉",
69 | "嗅", "绷", "蒯", "祺", "崧", "往", "枨", "涡", "鲲", "瓅", "岌", "肘", "飔", "缘", "千", "棱", "溶",
70 | "窣", "篼",
71 | "代", "捡", "送", "咡", "术", "滑", "茜", "晾", "挤", "曳", "糈", "G", "翊", "殴", "妹", "溥", "璆",
72 | "烩", "拙",
73 | "襄", "几", "嘴", "D", "驮", "淙", "蹐", "合", "環", "剑", "怪", "褂", "畑", "燏", "订", "珪", "≥",
74 | "瘟", "耷",
75 | "槑", "衷", "猕", "迁", "霎", "槜", "﹖", "鋈", "苹", "嫣", "祜", "李", "鄒", "噢", "萄", "仝", "纨",
76 | "直", "悛",
77 | "拣", "远", "诏", "圧", "躬", "蝟", "總", "眆", "筻", "硇", "鳁", "眠", "钆", "泞", "猱", "宾", "酞",
78 | "募", "螳",
79 | "腴", "念", "宠", "唯", "怊", "勃", "M", "兿", "蟑", "妁", "掸", "拌", "铸", "讼", "诟", "锺", "Ω",
80 | "竟", "羚",
81 | "剽", "C", "苦", "煳", "罢", "跨", "~", "豸", "±", "俬", "捺", "彦", "钣", "鋆", "用", "缤", "搁",
82 | "徼", "谦",
83 | "筘", "嗨", "扮", "旇", "折", "咯", "昆", "叟", "垂", "箐", "捻", "燕", "島", "瞀", "鮮", "屡", "點",
84 | "瘭", "恚",
85 | "旚", "丟", "捽", "菁", "瀑", "炕", "蹩", "芒", "r", "是", "媾", "鹝", "囵", "萤", "拷", "频", "埴",
86 | "课", "癍",
87 | "袱", "螯", "谘", "榛", "Y", "缣", "裔", "憩", "相", "觀", "晗", "坳", "炔", "勉", "汆", "钡", "舐",
88 | "衫", "疫",
89 | "鲙", "蘩", "穈", "殁", "九", "泻", "咤", "構", "谆", "陕", "装", "蔡", "画", "介", "苋", "務", "敝",
90 | "俟", "帇",
91 | "鸺", "贸", "茗", "肃", "滪", "输", "瘗", "菽", "饹", "诉", "遐", "浑", "扎", "卟", "铀", "邗", "觋",
92 | "嘎", "塑",
93 | "潏", "金", "姘", "潋", "逵", "鲻", "逯", "炮", "甄", "髡", "剩", "嗬", "芴", "屋", "改", "骣", "芪",
94 | "邠", "痋",
95 | "珑", "帆", "狙", "八", "奔", "族", "轵", "氖", "雕", "痧", "眊", "胛", "酉", "鲼", "砣", "猸", "餮",
96 | "郇", "沫",
97 | "跖", "蝉", "屑", "辘", "閣", "涑", "邡", "篃", "交", "笼", "颇", "贻", "魄", "黡", "劂", "糠", "炅",
98 | "帨", "苍",
99 | "瓴", "粤", "莎", "朿", "埔", "绸", "齁", "鱿", "惨", "腢", "郡", "棠", "猫", "脑", "風", "蚱", "捐",
100 | "嵌", "胱",
101 | "馗", "竽", "泥", "辍", "怖", "雾", "絮", "淼", "筝", "碲", "悼", "龀", "の", "珥", "忐", "溲", "昕",
102 | "荔", "掂",
103 | "瘦", "僭", "蔌", "抺", "椅", "誉", "扯", "僜", "停", "衉", "汇", "赔", "眄", "呙", "咙", "剿", "次",
104 | "蛟", "嗓",
105 | "』", "汕", "詈", "帘", "踧", "姁", "血", "堪", "喜", "滩", "璎", "胄", "俨", "眚", "凌", "拽", "滔",
106 | "⑿", "嬃",
107 | "―", "汐", "潭", "阡", "呓", "婷", "执", "妊", "恂", "妥", "鳘", "蔫", "设", "睒", "笪", "謇", "鞋",
108 | "谍", "黯",
109 | "虍", "馬", "蚧", "骑", "峤", "舾", "儀", "駡", "β", "蓑", "柏", "痒", "蒇", "痕", "妍", "熠", "僻",
110 | "爬", "迭",
111 | "畫", "绰", "湯", "凭", "菼", "懈", "顒", "午", "箪", "糙", "址", "钼", "堵", "佘", "侍", "卤", "(",
112 | "榚", "泽",
113 | "溘", "蟹", "b", "燁", "颂", "菠", "榉", "鲡", "埸", "荛", "歘", "断", "邸", "贡", "礞", "蔼", "脸",
114 | "爪", "帜",
115 | "翡", "仟", "皎", "辆", "滫", "昔", "™", "柬", "弓", "遇", "杪", "侨", "娓", "镪", "觑", "一", "踌",
116 | "牟", "褡",
117 | "厩", "晌", "每", "娘", "渤", "c", "咫", "成", "颏", "孩", "鼓", "瞌", "槁", "捒", "阉", "伉", "癣",
118 | "胞", "鲟",
119 | "瓤", "杅", "紡", "喂", "掠", "镜", "镧", "侞", "赦", "貝", "丕", "臧", "L", "池", "彷", "棓", "锽",
120 | "渊", "食",
121 | "饨", "堡", "玥", "氣", "讽", "敬", "闺", "帡", "携", "哫", "珈", "魆", "哄", "旁", "喻", "泄", "畎",
122 | "郁", "唅",
123 | "葜", "繪", "飐", "谶", "聆", "斝", "谥", "辉", "髅", "進", "吧", "蹀", "铛", "笛", "睥", "楼", "凝",
124 | "況", "鸷",
125 | "苠", "饺", "沙", "缴", "块", "梢", "慝", "珐", "鄏", "霰", "迸", "氆", "趵", "棣", "鳔", "祆", "☆",
126 | "苯", "恁",
127 | "螨", "庭", "缠", "槠", "津", "髋", "诔", "葶", "蜾", "坻", "蒹", "摔", "向", "垩", "蹭", "淇", "筛",
128 | "滬", "玡",
129 | "铺", "逼", "劵", "绲", "团", "鳀", "常", "玖", "擢", "株", "铵", "樽", "弭", "醇", "糨", "璈", "曩",
130 | "潔", "祘",
131 | "磨", "希", "鲅", "擂", "谗", "唳", "欷", "欧", "绋", "庙", "琬", "稳", "糊", "拥", "霪", "浼", "翎",
132 | "俜", "摸",
133 | "筚", "巯", "墼", "苫", "缩", "镚", "婪", "圹", "咚", "儿", "蒽", "婆", "鲐", "雹", "霞", "嶪", "濠",
134 | "琉", "澌",
135 | "媢", "禤", "摺", "掏", "矢", "艄", "围", "呸", "寺", "拤", "氐", "柝", "跎", "僖", "挢", "茨", "涮",
136 | "缫", "撸",
137 | "荨", "嶷", "廋", "魋", "付", "喋", "蜗", "邙", "棹", "璪", "倡", "鞭", "游", "錦", "眬", "抒", "眈",
138 | "培", "夏",
139 | "黔", "獐", "皋", "戛", "鲀", "垒", "耽", "纤", "漩", "铈", "握", "窝", "芋", "濞", "截", "零", "敖",
140 | "眸", "怦",
141 | "噎", "簋", "掳", "妣", "湃", "璠", "殄", "觞", "桅", "笋", "鲞", "踯", "傀", "犨", "抵", "疰", "暌",
142 | "耖", "供",
143 | "枳", "怂", "娶", "鸩", "捣", "庸", "逡", "懋", "颃", "長", "鼫", "姮", "蹈", "耵", "乂", "骐", "殇",
144 | "膏", "仳",
145 | "冥", "梭", "洵", "碣", "昝", "仉", "軒", "隍", "更", "な", "嵕", "拜", "粑", "鲴", "吇", "秃", "尕",
146 | "魃", "狨",
147 | "臛", "蟥", "胨", "注", "谁", "张", "才", "尸", "派", "矮", "洳", "舟", "溺", "锴", "寓", "籴", "夕",
148 | "叭", "荠",
149 | "澼", "劃", "久", "私", "炉", "娟", "麤", "稂", "河", "纴", "夺", "亏", "焙", "。", "塗", "蜩", "栌",
150 | "渡", "薰",
151 | "崋", "揿", "漤", "啾", "郏", "舣", "卉", "爱", "牚", "撵", "钺", "再", "企", "笺", "疾", "承", "俾",
152 | "瞈", "邰",
153 | "汾", "瘛", "檫", "蒎", "觅", "绀", "掎", "U", "赓", "匳", "聘", "蛤", "跤", "嗜", "洼", "歔", "弟",
154 | "飕", "莼",
155 | "嫉", "那", "滈", "践", "僦", "偎", "扢", "绚", "乕", "旳", "招", "饯", "®", "攸", "鞁", "囫", "铨",
156 | "陒", "鷄",
157 | "畀", "韨", "經", "纾", "萸", "肴", "→", "宗", "迳", "鳞", "亚", "搂", "喀", "狮", "坦", "瞥", "采",
158 | "姝", "钳",
159 | "□", "剌", "維", "葸", "鼩", "公", "刀", "沩", "喔", "泺", "哉", "徨", "篝", "掊", "沕", "运", "偆",
160 | "浒", "语",
161 | "乇", "仪", "萝", "疍", "踽", "碡", "熰", "荞", "嚓", "天", "饰", "泵", "械", "孑", "蛰", "荟", "源",
162 | "峡", "矜",
163 | "睬", "噬", "腆", "婉", "‘", "等", "誓", "辀", "岖", "琖", "碜", "霍", "怼", "唛", "弈", "淑", "疆",
164 | "晴", "镴",
165 | "鸡", "埚", "焕", "芦", "唻", "踅", "吴", "殡", "唏", "吨", "寡", "鹉", "絲", "坉", "會", "埭", "Ⅲ",
166 | "捏", "墅",
167 | "卓", "叙", "徇", "柜", "各", "荭", "J", "恝", "囐", "蓉", "犋", "叡", "莺", "颌", "蒸", "饸", "疋",
168 | "玊", "兢",
169 | "鱽", "藍", "杳", "辂", "獘", "拔", "侪", "湍", "膂", "渔", "瘊", "雉", "稁", "職", "僤", "鄳", "祁",
170 | "稱", "I",
171 | "裴", "锉", "曹", "鲶", "挨", "哑", "鷪", "鏠", "煞", "师", "蛲", "牁", "琅", "告", "媒", "祭", "确",
172 | "荚", "亰",
173 | "蝗", "阗", "歩", "疲", "f", "唣", "愛", "郾", "棍", "山", "狲", "纽", "蚡", "栂", "馓", "诊", "猴",
174 | "喤", "来",
175 | "继", "桎", "嬛", "骞", "邴", "暄", "贼", "昴", "廿", "克", "耔", "彤", "鹭", "葓", "骢", "龁", "鏡",
176 | "瀚", "赅",
177 | "韩", "譄", "榷", "殚", "膛", "须", "、", "砖", "唶", "番", "蛘", "畴", "铠", "亢", "氓", "铰", "炻",
178 | "筫", "迢",
179 | "兰", "玺", "砻", "积", "莜", "吸", "监", "膦", "迪", "迷", "冷", "哀", "贳", "瞄", "器", "鹡", "惺",
180 | "徐", "酢",
181 | "寒", "Ⓡ", "倾", "飞", "楽", "涢", "队", "舆", "赤", "璩", "戳", "殳", "掮", "舴", "蜷", "宄", "拴",
182 | "癌", "舛",
183 | "婀", "抟", "靡", "骍", "揸", "思", "慧", "平", "橘", "臭", "硖", "卬", "畈", "兠", "茸", "脂", "魚",
184 | "晩", "御",
185 | "龋", "涣", "罨", "爍", "糌", "汧", "缐", "贽", "要", "祀", "鲊", "爼", "獯", "瀣", "棋", "肈", "佣",
186 | "娣", "柩",
187 | "枸", "偃", "v", "唷", "劍", "榴", "槐", "漫", "洽", "蒡", "籼", "魔", "峋", "第", "歙", "萧", "谮",
188 | "埯", "撮",
189 | "马", "绡", "裘", "鹋", "蓬", "显", "噶", "倒", "镳", "艽", "窬", "拳", "樯", "跋", "詹", "钥", "心",
190 | "嶽", "嚋",
191 | "戎", "吕", "涂", "悃", "麦", "骋", "推", "箩", "硚", "匆", "村", "五", "杨", "凑", "鞫", "镰", "伥",
192 | "诒", "纣",
193 | "崃", "鸻", "翰", "辌", "廛", "證", "舢", "盼", "腿", "圳", "贱", "皿", "隆", "屈", "龏", "瓒", "顏",
194 | "↓", "赈",
195 | "煙", "窍", "韧", "壁", "莰", "箬", "蹋", "褰", "峥", "悚", "坜", "环", "回", "疼", "渍", "蝄", "东",
196 | "臂", "坩",
197 | "走", "痍", "或", "蜀", "熳", "蜻", "佐", "懿", "嚅", "紗", "螭", "忖", "顶", "狡", "吲", "洣", "帛",
198 | "呶", "柞",
199 | "柫", "酿", "粥", "琢", "呵", "踝", "榀", "呲", "價", "鼋", "欺", "此", "背", "猎", "昱", "濡", "稚",
200 | "欠", "暇",
201 | "茬", "牙", "迹", "尼", "氛", "膠", "缯", "娼", "骚", "姒", "鬟", "霁", "鲔", "者", "驰", "倩", "馉",
202 | "工", "芬",
203 | "烙", "卦", "C", "裂", "垲", "摆", "珮", "缏", "杞", "绘", "司", "如", "姞", "荆", "挖", "跗", "伍",
204 | "氚", "钘",
205 | "郢", "轱", "篆", "吭", "夡", "鹫", "讷", "轺", "!", "匈", "待", "聱", "黏", "海", "蹶", "趋", "鎮",
206 | "觊", "江",
207 | "咸", "富", "艴", "稗", "钜", "搏", "壶", "鲮", "薪", "猞", "轰", "踪", "赣", "循", "序", "噻", "若",
208 | "裾", "许",
209 | "癞", "吓", "判", "踔", "查", "蚀", "[", "樓", "坌", "岳", "榄", "役", "倜", "⒂", "旭", "溆", "惯",
210 | "咀", "跫",
211 | "选", "囱", "污", "镶", "⒁", "淠", "氮", "酯", "寅", "芼", "炊", "夯", "郪", "农", "褲", "嘬", "蹻",
212 | "烔", "罄",
213 | "开", "靴", "镇", "杯", "羰", "硪", "籍", "摘", "馀", "餐", "眯", "⑴", "呗", "巫", "幤", "蒤", "蒗",
214 | "镥", "檵",
215 | "盛", "純", "娃", "●", "耿", "巡", "婴", "槔", "i", "颊", "Ⅳ", "栅", "绅", "邘", "冉", "碧", "使",
216 | "熨", "羞",
217 | "扼", "漳", "觯", "楊", "励", "逑", "咄", "之", "斤", "嘣", "鹰", "媸", "鲂", "褚", "磚", "琨", "聪",
218 | "牖", "太",
219 | "蓍", "涫", "≤", "虽", "鸽", "燧", "褊", "聿", "壬", "然", "疚", "莲", "悴", "簃", "颓", "坠", "瞬",
220 | "汳", "l",
221 | "登", "瘼", "窳", "桤", "縯", "匣", "坡", "↑", "愦", "攘", "渭", "嬢", "鲰", "性", "楚", "澈", "赪",
222 | "達", "鄯",
223 | "罅", "帽", "茠", "底", "嫜", "奏", "浅", "荽", "楹", "鼍", "枵", "嗔", "滍", "椴", "嵩", "氤", "搠",
224 | "两", "榔",
225 | "树", "吝", "基", "峂", "栎", "侮", "舸", "遂", "颡", "锷", "杼", "酔", "幄", "哽", "睢", "陔", "※",
226 | "嚆", "宬",
227 | "宽", "髦", "笾", "保", "蹊", "榕", "咏", "椋", "丧", "裤", "骛", "逧", "弇", "崆", "樘", "疤", "鸤",
228 | "伞", "抚",
229 | "诎", "诵", "豢", "佳", "差", "埝", "极", "黍", "煜", "曰", "阱", "悞", "叹", "垤", "藁", "嗵", "崔",
230 | "卫", "珂",
231 | "憯", "蔬", "菜", "碑", "扈", "铆", "夹", "衡", "弱", "挈", "徜", "疠", "丶", "遠", "提", "斧", "炟",
232 | "肺", "B",
233 | "她", "晟", "谎", "邱", "粳", "酽", "爨", "鬼", "伧", "兹", "嶓", "谤", "饕", "揶", "谱", "歡", "髪",
234 | "餍", "泳",
235 | "郞", "谣", "汉", "褐", "非", "刽", "缅", "饴", "齐", "兴", "涯", "芫", "凡", "褶", "晡", "努", "蚶",
236 | "彥", "皤",
237 | "砌", "黼", "吹", "指", "㙟", "蓁", "鹜", "話", "拊", "辨", "盎", "肌", "旘", "软", "颍", "甏", "滚",
238 | "旦", "滨",
239 | "间", "尴", "对", "鄘", "称", "镗", "咅", "璐", "怔", "垛", "洎", "瓮", "绨", "脚", "遒", "吊", "纸",
240 | "蹅", "经",
241 | "泉", "武", "汀", "歪", "败", "拾", "铪", "吼", "邹", "磊", "论", "岛", "厍", "锛", "芎", "芭", "音",
242 | "澧", "镕",
243 | "锒", "宙", "牵", "忱", "嫔", "麯", "澉", "擐", "砥", "撞", "痴", "盹", "畿", "厾", "酸", "俑", "脽",
244 | "鸈", "枷",
245 | "咨", "蔹", "诂", "胰", "董", "脶", "黩", "髓", "鉵", "澎", "鲽", "梧", "樱", "诜", "鲯", "跂", "盂",
246 | "浴", "苻",
247 | "锅", "實", "碁", "嘛", "氕", "艮", "涟", "绢", "姿", "茝", "砘", "簿", "穷", "镃", "∈", "抽", "事",
248 | "誜", "窅",
249 | "瀘", "鲹", "兖", "嵎", "陧", "榍", "轶", "柿", "藤", "薏", "娆", "骷", "梅", "摒", "睪", "剪", "羸",
250 | "忧", "邝",
251 | "跺", "旆", "堕", "伫", "绍", "疵", "樟", "–", "绾", "蜴", "靸", "侃", "瘘", "珧", "遨", "縠", "信",
252 | "充", "桔",
253 | "黇", "劬", "脒", "良", "俵", "颙", "轹", "犿", "屐", "牾", "4", "兮", "澝", "汗", "沼", "铲", "濋",
254 | "鹬", "丝",
255 | "妫", "重", "蒺", "磲", "曚", "尔", "国", "桐", "俣", "剐", "哼", "恹", "哧", "藔", "谓", "轨", "眩",
256 | "痞", "添",
257 | "鬯", "库", "梱", "婕", "蜢", "贿", "敕", "泯", "羟", "龇", "垸", "左", "肖", "辎", "鞣", "谄", "可",
258 | "腺", "末",
259 | "狞", "贷", "嗌", "仕", "楞", "膻", "臻", "欻", "洲", "所", "檀", "抔", "罹", "牒", "仫", "芨", "柄",
260 | "嫩", "酒",
261 | "祙", "渠", "的", "笨", "鳐", "楡", "过", "苡", "核", "拖", "阢", "莒", "凤", "锋", "`", "硎", "弁",
262 | "鬶", "朐",
263 | "忏", "於", "昊", "剟", "咳", "湘", "日", "满", "哨", "螵", "餪", "放", "佶", "葵", "硷", "c", "抱",
264 | "锥", "芮",
265 | "啻", "惊", "峁", "琊", "嶲", "撺", "煅", "屏", "袗", "鄞", "梓", "鹌", "宅", "赂", "鱼", "洱", "騳",
266 | "E", "物",
267 | "觏", "雙", "瑀", "上", "淩", "愀", "❋", "鄙", "憝", "沛", "硫", "产", "垯", "亁", "枭", "堰", "赑",
268 | "趾", "庹",
269 | "腭", "迨", "拚", "晒", "蜇", "扣", "纰", "闵", "窭", "椽", "菏", "嘁", "伛", "郸", "素", "殷", "表",
270 | "躞", "笸",
271 | "耻", "荧", "辛", "篑", "馈", "壮", "耩", "宛", "慰", "盡", "塆", "铯", "苏", "王", "桕", "⑧", "°",
272 | "浚", "栉",
273 | "朘", "虚", "骆", "坂", "秤", "鲋", "蕊", "渝", "呦", "潼", "驱", "诼", "峇", "盤", "趴", "肄", "笑",
274 | "讹", "貋",
275 | "穂", "啼", "趟", "暽", "傣", "蜎", "挎", "陳", "勖", "戴", "旃", "瞎", "舌", "幻", "喾", "赁", "E",
276 | "播", "诀",
277 | "蟛", "鹛", "骶", "輸", "連", "醳", "逅", "奉", "崖", "娩", "幔", "佃", "扅", "阔", "生", "贬", "疯",
278 | "珀", "苶",
279 | "屯", "裣", "蹯", "蝮", "解", "陂", "疝", "茈", "帑", "议", "仲", "埙", "竺", "峰", "遮", "涎", "穸",
280 | "阂", "潵",
281 | "镱", "例", "荑", "u", "脎", "衍", "轲", "⑵", "虾", "颚", "钞", "²", "伴", "根", "沣", "腌", "户",
282 | "~", "辙",
283 | "愧", "噤", "觥", "波", "铗", "纂", "鲺", "僚", "毐", "〇", "桼", "祗", "慢", "啵", "坏", "吗", "嗞",
284 | "甬", "曈",
285 | "徹", "灏", "混", "渌", "括", "脖", "汝", "現", "訇", "紅", "飘", "虢", "腱", "旄", "嬴", "昨", "孀",
286 | "蚁", "呛",
287 | "讳", "病", ",", "喈", "蒋", "镭", "葩", "耲", "鳈", "锄", "喘", "返", "傕", "咆", "享", "枥", "瓠",
288 | "茳", "铱",
289 | "脘", "暹", "廒", "爝", "橹", "瞑", "铎", "岢", "叁", "翏", "捭", "賀", "悉", "帝", "芥", "牀", "闌",
290 | "毯", "亍",
291 | "弧", "锆", "币", "祊", "纔", "齑", "肟", "绤", "獨", "翚", "颢", "係", "鍪", "粉", "统", "诗", "娜",
292 | "褥", "鈺",
293 | "湔", "呤", "犸", "湨", "泣", "蟾", "犾", "烛", "斐", "朦", "室", "诨", "榭", "煦", "醺", "敞", "燮",
294 | "糅", "衽",
295 | "孔", "猄", "疭", "辰", "钽", "胁", "釆", "钉", "胤", "涧", "弼", "濯", "汨", "颖", "茫", "皑", "遏",
296 | "捃", "坭",
297 | "燴", "肩", "滞", "玢", "巽", "砺", "蜿", "毁", "億", "骥", "本", "忽", "肚", "搽", "靰", "郴", "跆",
298 | "客", "酣",
299 | "α", "屎", "辩", "殂", "垝", "紫", "秦", "喇", "凶", "傧", "铐", "蘊", "補", "贤", "竿", "途", "慗",
300 | "榖", "券",
301 | "莠", "逆", "鳇", "误", "崟", "妇", "磷", "捧", "莸", "⇋", "绺", "稻", "填", "逋", "侈", "隶", "侵",
302 | "翥", "惘",
303 | "惧", "鸥", "赠", "壳", "芯", "巩", "獗", "硅", "搎", "鲛", "9", "夸", "穆", "缜", "诓", "观", "薛",
304 | "咎", "杧",
305 | "页", "饫", "瑟", "率", "礤", "悭", "畔", "匯", "匮", "鼠", "犒", "芡", "傍", "嫂", "啸", "鄉", "哭",
306 | "鄱", "捷",
307 | "靺", "嚒", "嘀", "哒", "#", "拼", "钚", "魁", "霣", "眶", "郊", "死", "愁", "箭", "鼙", "签", "害",
308 | "斛", "睑",
309 | "蟜", "余", "墨", "様", "读", "養", "貉", "较", "浆", "翩", "徂", "冕", "铧", "列", "诈", "穝", "缑",
310 | "纲", "志",
311 | "舀", "甾", "举", "馁", "ä", "畹", "榼", "垢", "襁", "麟", "灭", "佴", "镩", "酝", "柒", "梯", "傈",
312 | "萭", "悫",
313 | "莨", "搞", "+", "兄", "偲", "攀", "曝", "嵝", "喳", "从", "遶", "撴", ".", "鄄", "欲", "挺", "娡",
314 | "发", "速",
315 | "胲", "褀", "态", "行", "蚓", "坼", "适", "厦", "寐", "带", "緃", "醤", "珽", "‧", "溍", "斋", "鐀",
316 | "朝", "欢",
317 | "传", "築", "咪", "据", "蹜", "医", "妄", "肇", "囝", "怡", "镎", "桩", "轩", "岔", "腐", "矽", "媵",
318 | "搒", "菔",
319 | "拘", "D", "欃", "唧", "瞒", "郈", "绦", "吟", "撝", "醉", "镣", "匝", "拎", "砒", "顸", "袁", "驼",
320 | "愔", "实",
321 | "國", "奧", "胩", "府", "逾", "愕", "廷", "碌", "锖", "狩", "褴", "镢", "芷", "娥", "唤", "┌", "云",
322 | "О", "檔",
323 | "驴", "躯", "驺", "洃", "檑", "窴", "(", "腕", "立", "楯", "齮", "〔", "漆", "k", "芍", "蹽", "鬓",
324 | "概", "楣",
325 | "唐", "闲", "糗", "旱", "幸", "腽", "嗄", "迂", "镠", "顿", "扥", "圃", "烜", "馍", "佝", "岷", "童",
326 | "悦", "┐",
327 | "铌", "袈", "靓", "骸", "和", "乔", "灸", "泓", "临", "睿", "掖", "偿", "鐘", "犁", "祓", "鈴", "搌",
328 | "授", "鹳",
329 | "赢", "怅", "絪", "硬", "芙", "螅", "”", "傢", "避", "裕", "歁", "全", "衰", "仃", "媛", "鬻", "跽",
330 | "沌", "急",
331 | "猷", "激", "巉", "哝", "渣", "笫", "跳", "螫", "熜", "Z", "筷", "佩", "啶", "萃", "頫", "荙", "出",
332 | "孽", "钟",
333 | "戡", "釉", "咬", "滦", "鹇", "贯", "鹮", "具", "翁", "机", "濱", "谳", "釣", "懑", "葛", "袯", "谭",
334 | "质", "胴",
335 | "誊", "侗", "⑩", "静", "蚜", "溋", "嫪", "嗲", "瑭", "座", "舫", "靶", "棘", "泊", "嵖", "摧", "勋",
336 | "僡", "藉",
337 | "疖", "巂", "随", "罾", "崚", "猹", "憨", "苘", "斓", "鼷", "利", "谲", "剔", "艺", "箓", "蛀", "鲚",
338 | "搐", "裟",
339 | "捶", "绌", "揪", "帮", "缥", "匍", "冀", "杻", "逛", "邑", "禾", "郰", "黜", "丘", "樂", "滌", "緣",
340 | "胃", "苄",
341 | "巾", "瑜", "元", "蝶", "层", "烧", "级", "岭", "蘭", "繇", "蝓", "洞", "奢", "则", "政", "矾", "啭",
342 | "瘠", "碴",
343 | "忤", "身", "匠", "警", "饩", "犬", "皲", "箔", "豕", "虑", "草", "喟", "芤", "逭", "艳", "幡", "姚",
344 | "賓", "饪",
345 | "卯", "敌", "烽", "嫚", "黝", "豺", "㭗", "教", "偕", "板", "茹", "孤", "人", "狻", "寰", "厕", "玲",
346 | "璨", "锵",
347 | "搛", "勍", "匾", "聃", "奘", "垃", "焓", "喽", "嫫", "貌", "瘐", "嚰", "孟", "衔", "郎", "账", "础",
348 | "电", "黑",
349 | "骁", "拨", "濆", "圉", "刮", "闭", "竣", "铅", "羔", "硌", "筑", "难", "管", "苕", "眺", "嫄", "竖",
350 | "榟", "崴",
351 | "摭", "狐", "娑", "②", "罽", "谊", "←", "狳", "铫", "凯", "狉", "9", "肪", "崤", "莊", "妨", "缶",
352 | "滃", "瀦",
353 | "揉", "肫", "恧", "糯", "嵬", "5", "裆", "嚷", "稣", "隐", "仂", "て", "驹", "籽", "肢", "尘", "苈",
354 | "撷", "镲",
355 | "趹", "晤", "唱", "鉏", "篌", "驩", "雍", "闳", "拄", "藜", "朴", "伺", "诳", "房", "吱", "Й", "鳄",
356 | "罿", "祧",
357 | "酩", "郅", "耎", "尜", "绝", "禅", "揠", "鎏", "慕", "麥", "呜", "鸫", "党", "尝", "砑", "牌", "踉",
358 | "刨", "襻",
359 | "㾄", "螽", "谌", "止", "抑", "爻", "磬", "铄", "蓠", "委", "汲", "鹑", "╱", "嚣", "彝", "穄", "穹",
360 | "態", "醋",
361 | "⒀", "叼", "婳", "簌", "渥", "很", "甸", "帅", "锏", "与", "樾", "泷", "棼", "湲", "越", "祥", "短",
362 | "顼", "阘",
363 | "宋", "馘", "鈉", "未", "囍", "浏", "叻", "箜", "鑽", "法", "曲", "淤", "僮", "做", "强", "析", "磕",
364 | "谠", "染",
365 | "促", "朊", "隼", "铉", "莆", "蝣", "孛", "薮", "s", "惴", "秘", "妩", "訄", "蔓", "喷", "诡", "犷",
366 | "酐", "酇",
367 | "刹", "壅", "甫", "史", "孃", "髌", "螬", "擤", "漏", "寞", "奡", "悢", "颔", "岁", "耄", ";", "又",
368 | "锭", "鲤",
369 | "癔", "杰", "孥", "酲", "蓐", "耋", "捆", "庖", "面", "鹈", "殊", "剡", "峪", "识", "锨", "归", "茴",
370 | "—", "菤",
371 | "汁", "攝", "液", "鼐", "示", "讠", "男", "凍", "ò", "明", "莓", "砜", "崎", "蜂", "斡", "榫", "娅",
372 | "钪", "昙",
373 | "胜", "欣", "怨", "◆", "粗", "秷", "节", "市", "贩", "祟", "弍", "蒟", "烁", "糧", "蠃", "編", "黙",
374 | "壕", "戚",
375 | "犊", "桥", "仺", "孳", "怯", "皓", "倆", "垮", "扩", "诮", "钝", "脯", "晏", "帔", "葫", "瑾", "運",
376 | "孬", "跄",
377 | "掣", "癜", "掌", "墀", "禇", "耸", "蜓", "鹆", "鄢", "攰", "瘢", "暝", "鸣", "峧", "遵", "笃", "畚",
378 | "帧", "晨",
379 | "镔", "搜", "靠", "咐", "韓", "绮", "觉", "拦", "斲", "疽", "掐", "尽", "許", "矶", "镉", "豹", "粞",
380 | "袋", "酵",
381 | "蛙", "戕", "劉", "髀", "彭", "玎", "囿", "郐", "善", "睃", "結", "拧", "邯", "讧", "召", "椭", "瑪",
382 | "痼", "庼",
383 | "反", "疱", "屠", "荣", "君", "胍", "乙", "臬", "头", "诰", "讪", "席", "晁", ":", "理", "槿", "璘",
384 | "禧", "呢",
385 | "蹙", "擒", "鸲", "丐", "苓", "壑", "滥", "⑾", "炗", "礴", "耕", "卅", "唿", "苛", "寵", "窖", "麻",
386 | "蕨", "沤",
387 | "氢", "虔", "癃", "及", "崛", "爽", "蛔", "颤", "膲", "桢", "坐", "蟞", "儇", "葚", "骤", "誤", "寝",
388 | "嘭", "灰",
389 | "汹", "韂", "铮", "慒", "寶", "肽", "摅", "紧", "亞", "潸", "悯", "橛", "檗", "闹", "愿", "担", "袄",
390 | "棚", "垟",
391 | "塄", "婞", "麈", "麸", "暗", "咦", "跞", "谡", "盈", "磐", "慎", "瘰", "掼", "憔", "研", "被", "贮",
392 | "莛", "至",
393 | "呀", "庑", "矫", "摛", "怃", "缙", "磺", "即", "驻", "瘤", "偏", "℃", "嫘", "癫", "汈", "鹟", "搅",
394 | "辅", "璀",
395 | "阊", "绻", "瑙", "蓂", "棺", "孢", "铊", "鼒", "果", "砮", "飾", "凰", "Я", "遗", "祛", "纮", "劲",
396 | "霹", "骃",
397 | "绔", "薅", "瀵", "垅", "?", "轻", "惇", "怕", "啥", "哙", "燎", "缆", "匡", "怫", "卞", "朋", "酏",
398 | "阑", "爾",
399 | "伏", "敏", "埼", "罩", "菹", "艋", "肭", "鯭", "杋", "裀", "撬", "蕺", "惠", "大", "爇", "笈", "絷",
400 | "琳", "谫",
401 | "诛", "糇", "袢", "倓", "髃", "觽", "埏", "寖", "個", "筴", "外", "漯", "樭", "喁", "杀", "臑", "缇",
402 | "裸", "巅",
403 | "毹", "茅", "忆", "琼", "唑", "烷", "项", "隋", "约", "排", "吮", "谂", "宝", "牲", "瘫", "娄", "沂",
404 | "醫", "拭",
405 | "纺", "蹰", "哞", "风", "霆", "值", "酺", "侠", "螾", "埂", "育", "夷", "鮼", "怍", "鸠", "Θ", "瞳",
406 | "阇", "耥",
407 | "羝", "伽", "洴", "記", "楔", "颼", "沪", "邢", "冰", "昀", "阙", "洌", "嫦", "杂", "仔", "芑", "潴",
408 | "痄", "桨",
409 | "连", "碓", "塈", "F", "昇", "何", "桦", "晥", "驵", "旋", "药", "银", "奋", "灣", "俐", "絡", "嫁",
410 | "浮", "为",
411 | "鞅", "科", "颦", "潽", "镍", "鸨", "粵", "骂", "拱", "韫", "盆", "赎", "尿", "钿", "坍", "唁", "秧",
412 | "昌", "曆",
413 | "颋", "遭", "秭", "褔", "腋", "〉", "吉", "漓", "臆", "焘", "已", "制", "钹", "鴨", "咖", "莘", "P",
414 | "碥", "互",
415 | "治", "标", "膝", "伪", "浿", "纛", "郗", "看", "佧", "糖", "篓", "亡", "´", "骙", "澡", "影", "窂",
416 | "紬", "镅",
417 | "慌", "框", "晋", "説", "丢", "凹", "卖", "巧", "蹉", "乾", "莫", "Z", "谔", "矧", "铑", "暴", "庄",
418 | "湿", "活",
419 | "穿", "腩", "筣", "水", "6", "琦", "迈", "伯", "洄", "抡", "▪", "酋", "荤", "雒", "粕", "簠", "菰",
420 | "髁", "枇",
421 | "陲", "多", "仗", "央", "滁", "胸", "梏", "痉", "姑", "襞", "﹑", "齿", "弩", "花", "吆", "赫", "岵",
422 | "佪", "谑",
423 | "锤", "轴", "盐", "馄", "臜", "戢", "涠", "鸸", "糟", "孪", "禁", "蒲", "化", "疏", "痰", "脾", "刈",
424 | "應", "珍",
425 | "膺", "扌", "廙", "汜", "牍", "虐", "婿", "啕", "彻", "赝", "陶", "蠲", ">", "位", "屁", "醍", "粢",
426 | "挪", "臌",
427 | "滹", "遴", "馨", "n", "稼", "徊", "酌", "轸", "债", "朰", "程", "辞", "痊", "插", "鹩", "郄", "铝",
428 | "狱", "叱",
429 | "同", "寄", "搪", "蚯", "魭", "舍", "旷", "闰", "涝", "民", "嗡", "苌", "馕", "姥", "屉", "啧", "枢",
430 | "❤", "窕",
431 | "钊", "矬", "菂", "佑", "≠", "獬", "桁", "墟", "皖", "鼻", "它", "歇", "独", "好", "晕", "蚝", "锞",
432 | "颈", "豚",
433 | "聖", "裉", "扫", "岿", "悒", "佥", "苗", "妞", "晚", "圭", "茼", "脲", "摊", "窠", "狸", "抻", "场",
434 | "呼", "囟",
435 | "噗", "狺", "困", "瀹", "削", "衬", "谰", "蛆", "訓", "鉄", "痃", "炱", "蝻", "我", "暨", "骓", "馋",
436 | "埤", "脞",
437 | "晃", "螟", "洮", "泛", "掾", "穑", "米", "蕲", "玦", "讙", "逢", "劐", "袭", "凫", "僳", "畛", "晷",
438 | "鳕", "Ë",
439 | "愬", "坫", "鳡", "鞯", "叔", "胂", "囚", "筋", "青", "度", "涕", "琰", "﹔", "径", "陇", "睛", "链",
440 | "状", "逶",
441 | "蘅", "“", "庇", "邽", "纥", "踶", "爺", "狭", "钫", "桃", "弛", "淳", "办", "茕", "砸", "喱", "仅",
442 | "潞", "杈",
443 | "得", "咕", "俞", "检", "借", "恋", "驿", "倌", "钢", "琐", "哆", "撙", "箫", "川", "猥", "牢", "蹁",
444 | "城", "馏",
445 | "锡", "楝", "蛱", "奈", "瑶", "桺", "耆", "翟", "阒", "稲", "橐", "萱", "惹", "蘼", "主", "擦", "蟒",
446 | "台", "佬",
447 | "荫", "廖", "笏", "铕", "衣", "洇", "炒", "瀍", "崭", "圻", "洚", "契", "嫱", "倏", "晶", "了", "堠",
448 | "勰", "椎",
449 | "询", "梗", "飒", "锰", "览", "溇", "寻", "蓅", "【", "碇", "井", "露", "顔", "堌", "庳", "踩", "i",
450 | "饷", "俊",
451 | "楫", "條", "搭", "奍", "羽", "憋", "岘", "毡", "曜", "乃", "′", "针", "羲", "菓", "吩", "咩", "鞘",
452 | "尊", "宫",
453 | "舜", "啖", "惗", "北", "懊", "骇", "阄", "躅", "权", "缲", "肥", "铜", "《", "录", "也", "棬", "煮",
454 | "舄", "厮",
455 | "'", "順", "受", "霜", "新", "售", "牞", "圣", "妗", "犴", "宥", "哦", "陀", "卺", "冚", "蹒", "亸",
456 | "禮", "骰",
457 | "瑢", "弒", "抛", "谷", "嫰", "動", "嘌", "惩", "枣", "忌", "茡", "爵", "嘚", "郧", "丨", "敲", "帚",
458 | "沭", "槊",
459 | "⑶", "專", "毶", "圄", "磅", "蛭", "由", "蠹", "剜", "诫", "秆", "愠", "藓", "母", "请", "衩", "忸",
460 | "蜕", "饽",
461 | "晦", "倔", "腠", "痛", "品", "簧", "父", "锐", "描", "蓰", "蛴", "箍", "兕", "苜", "饼", "奚", "泗",
462 | "裥", "皂",
463 | "嵚", ",", "澶", "蠖", "沅", "馎", "籀", "菝", "眵", "糥", "铽", "痤", "颟", "淄", "作", "抉", "俄",
464 | "么", "郑",
465 | "耒", "佛", "1", "纡", "鸢", "④", "鎚", "壖", "遢", "鬈", "拢", "托", "哈", "節", "橦", "冼", "六",
466 | "耗", "樵",
467 | "涔", "舳", "龌", "衿", "婧", "栓", "椹", "嘘", "膊", "茁", "丹", "螃", "剖", "洧", "珞", "潺", "孱",
468 | "呐", "萩",
469 | "刷", "引", "说", "熟", "/", "靖", "酷", "耠", "饬", "菌", "洙", "荃", "饲", "酾", "阁", "陬", "铿",
470 | "倻", "牮",
471 | "鞡", "撕", "倘", "盒", "曺", "襦", "辄", "算", "塬", "潢", "羖", "湾", "续", "△", "疙", "谖", "嘅",
472 | "遑", "篚",
473 | "筮", "氍", "递", "尧", "G", "{", "分", "埒", "@", "蜍", "荼", "襆", "槭", "檠", "縢", "濉", "梆",
474 | "隔", "镛",
475 | "倞", "润", "瓯", "瓢", "蟊", "沐", "啷", "砚", "皱", "剅", "儙", "错", "幌", "滓", "砗", "郤", "喧",
476 | "峣", "簸",
477 | "毖", "踏", "锕", "…", "悖", "谧", "醵", "加", "镐", "泐", "傫", "胪", "缄", "卩", "蓼", "丸", "垌",
478 | "汞", "宴",
479 | "膙", "圊", "矻", "嚏", "漾", "幕", "駕", "葒", "绪", "袪", "镋", "杭", "澴", "鬃", "粟", "偻", "饳",
480 | "抨", "亟",
481 | "温", "韶", "轿", "罟", "际", "诖", "复", "坯", "骗", "*", "副", "裢", "憬", "邾", "崇", "蕈", "疮",
482 | "粽", "炝",
483 | "珲", "莅", "衾", "爲", "枯", "汛", "仁", "熏", "馥", "㎡", "檐", "锦", "竭", "颁", "遽", "瘙", "样",
484 | "遛", "殍",
485 | "湄", "消", "鳌", "痫", "鳏", "瓶", "窈", "谚", "麒", "鸹", "蟋", "横", "唠", "瘪", "媪", "侔", "鐵",
486 | "系", "杖",
487 | "m", "叉", "沟", "衢", "寘", "■", "弗", "建", "疣", "珣", "綦", "劈", "道", "嘈", "先", "芝", "降",
488 | "滕", "邵",
489 | "邺", "給", ")", "廨", "郛", "势", "氇", "坤", "昂", "焼", "奕", "闱", "朓", "毽", "还", "坨", "銭",
490 | "龂", "銎",
491 | "壽", "矸", "窒", "①", "玷", "蝽", "泃", "烀", "魈", "★", "慶", "K", "嘶", "酶", "呖", "殿", "乡",
492 | "䄂", "阳",
493 | "轪", "碱", "譬", "摩", "鳖", "刳", "地", "包", "貊", "悝", "圩", "今", "嚭", "凳", "谕", "馃", "捎",
494 | "佯", "侬",
495 | "愆", "微", "涤", "舔", "蛇", "筲", "助", "锾", "剧", "缧", "簪", "惚", "柢", "庾", "虹", "雪", "猡",
496 | "脔", "亶",
497 | "烨", "T", "锗", "芈", "女", "动", "偬", "琥", "县", "诣", "精", "嬗", "栀", "艨", "智", "冗", "闼",
498 | "嗝", "z",
499 | "夢", "拿", "鹲", "尤", "啮", "﹐", "ɔ", "钓", "施", "萼", "邻", "竞", "碶", "艰", "》", "翻", "馆",
500 | "橪", "逝",
501 | "臀", "淫", "枉", "羿", "拇", "溷", "徒", "涓", "關", "聋", "嵊", "殖", "叛", "敫", "舵", "亊", "诽",
502 | "菱", "苎",
503 | "破", "腚", "A", "嵋", "扊", "挂", "篷", "棂", "碟", "復", "劾", "韪", "疔", "粒", "鲵", "毙", "店",
504 | "锻", "衮",
505 | "寳", "◎", "斯", "倦", "醢", "曾", "茚", "荐", "隗", "芊", "豪", "亻", "哂", "堃", "宇", "桑", "匋",
506 | "植", "亥",
507 | "撂", "棒", "蟠", "W", "迟", "蚋", "溊", "缌", "鞚", "蚤", "適", "赌", "卣", "厚", "鲾", "匙", "槃",
508 | "郎", "鬏",
509 | "玳", "龄", "丈", "圮", "冑", "院", "葬", "嵐", "瓦", "孵", "漶", "星", "吐", "獍", "藠", "萍", "振",
510 | "潜", "龉",
511 | "匦", "粹", "諾", "畵", "峦", "&", "埕", "朵", "戒", "炳", "酪", "绂", "篁", "测", "殆", "涌", "业",
512 | "盏", "醊",
513 | "笆", "孰", "骊", "湛", "踰", "汎", "哲", "澙", "鲷", "√", "鄣", "亿", "螺", "吠", "伟", "凛", "骡",
514 | "恻", "巨",
515 | "扶", "泡", "峯", "韵", "腎", "睦", "栖", "}", "笙", "疌", "绶", "忒", "哥", "价", "纻", "薨", "漂",
516 | "濮", "缮",
517 | "勐", "妮", "傩", "陛", "陷", "柆", "瞭", "鲳", "烬", "喉", "固", "桡", "聊", "逦", "猊", "梻", "涵",
518 | "栒", "逍",
519 | "饥", "凼", "早", "姣", "蕤", "塌", "桀", "亳", "虻", "鹨", "典", "情", "怄", "商", "钍", "赚", "塥",
520 | "煽", "垱",
521 | "蝴", "乓", "籁", "帷", "锢", "圪", "快", "赘", "杵", "漠", "滴", "斩", "拈", "蚕", "陽", "篡", "郦",
522 | "瞻", "郯",
523 | "鳍", "幽", "旅", "乖", "鹖", "斫", "痂", "肸", "右", "锂", "永", "泾", "茎", "觱", "彼", "擎", "䨱",
524 | "翱", "徝",
525 | "醅", "求", "湫", "転", "溴", "師", "瓣", "蝠", "铭", "社", "苞", "仇", "噌", "你", "嗾", "雳", "榧",
526 | "駹", "雯",
527 | "叨", "遫", "氏", "航", "辗", "溢", "历", "楷", "诱", "雏", "梳", "藕", "屺", "槎", "钐", "燘", "棽",
528 | "驸", "褪",
529 | "清", "十", "廰", "移", "筌", "揾", "瞠", "姽", "馑", "恢", "逸", "p", "瑚", "茄", "鹧", "俗", "璟",
530 | "栊", "买",
531 | "瀛", "镒", "球", "氲", "缛", "講", "胀", "焒", "悲", "翕", "拗", "T", "桌", "脓", "闪", "稀", "狎",
532 | "火", "柁",
533 | "琴", "澍", "嗟", "龚", "楮", "噼", "隽", "栩", "焻", "哩", "藻", "瘸", "含", "偶", "界", "嘃", "昶",
534 | "澄", "頤",
535 | "绒", "鲁", "麝", "决", "撒", "岙", "季", "刿", "肝", "蒉", "蓇", "财", "完", "蠔", "脉", "肱", "谙",
536 | "蜮", "郭",
537 | "慨", "晔", "髂", "蛏", "眨", "钗", "葺", "惆", "娈", "瞵", "踞", "棁", "蝢", "嚎", "猝", "必", "剞",
538 | "关", "咛",
539 | "劫", "闸", "肯", "№", "莩", "哇", "蛑", "镬", "羡", "驊", "茂", "塍", "沓", "筱", "杉", "战", "茧",
540 | "耙", "击",
541 | "需", "腊", "酎", "畦", "葙", "鹘", "韭", "嚚", "争", "域", "伢", "鞲", "哳", "栲", "某", "翌", "哗",
542 | "焚", "螗",
543 | "懲", "躲", "約", "镖", "凿", "饶", "够", "剁", "铥", "应", "署", "杮", "蒂", " ", "坷", "礅", "款",
544 | "梁", "鄜",
545 | "髹", "選", "伤", "路", "З", "亲", "野", "啦", "捯", "憷", "鲩", "札", "怏", "塘", "绊", "愍", "簦",
546 | "牦", "黥",
547 | "鳜", "唉", "W", "沱", "蚺", "甪", "摉", "协", "耨", "娱", "桄", "仆", "类", "搡", "滤", "岗", "休",
548 | "坶", "谒",
549 | "忭", "飨", "闷", "菟", "鲣", "驷", "湜", "疡", "蚩", "萊", "䝉", "硒", "贺", "弃", "徘", "陨", "否",
550 | "遥", "妒",
551 | "X", "間", "觜", "跬", "夬", "羮", "喙", "赇", "鹗", "『", "砀", "残", "绿", "小", "勘", "瀌", "扉",
552 | "耧", "衅",
553 | "挟", "乐", "鹏", "墁", "澜", "噍", "坊", "術", "嗖", "知", "盉", "圆", "嗈", "蘖", "资", "爭", "=",
554 | "刑", "裒",
555 | "〈", "淸", "定", "袒", "戗", "钤", "吵", "旯", "蓝", "裎", "溅", "贰", "荏", "甥", "悌", "勤", "炽",
556 | "换", "躜",
557 | "!", "薄", "痱", "双", "匕", "肷", "挥", "茑", "船", "砝", "煤", "荜", "弘", "▏", "陆", "稔", "朽",
558 | "冤", "頉",
559 | "遊", "砰", "迎", "碎", "唪", "醪", "稆", "练", "锸", "阵", "皇", "香", "镀", "嫡", "持", "桶", "垄",
560 | "阍", "戥",
561 | "臣", "琛", "涘", "惶", "赙", "葆", "住", "舊", "枝", "媲", "蓣", "龅", "搦", "_", "图", "力", "纪",
562 | "悍", "麗",
563 | "戽", "腧", "绣", "跟", "哕", "打", "蝰", "Φ", "吞", "功", "夀", "劓", "沇", "熔", "占", "隰", "命",
564 | "佻", "豁",
565 | "苣", "楦", "掇", "蛛", "唢", "郜", "霉", "鲏", "予", "沸", "殻", "俯", "探", "篪", "荇", "邈", "烯",
566 | "忮", "伸",
567 | "岬", "×", "锧", "窸", "毪", "纩", "蛋", "讯", "骼", "叶", "楂", "犟", "站", "盘", "隈", "喝", "儣",
568 | "兵", "尚",
569 | "孙", "爿", "芜", "羁", "旖", "溽", "迩", "京", "7", "龃", "狝", "缦", "缁", "鲃", "怒", "故", "據",
570 | "枫", "髙",
571 | "亭", "耳", "飚", "O", "编", "箸", "幼", "氘", "鞮", "匐", "祯", "臃", "辫", "磋", "溝", "墙", "诚",
572 | "阻", "档",
573 | "歆", "璃", "悻", "婤", "映", "瑞", "牂", "话", "忠", "潘", "惋", "冬", "氦", "腔", "胬", "盔", "\"",
574 | "饮", "贶",
575 | "嚄", "儆", "溜", "砷", "樇", "跏", "泩", "馌", "埃", "莙", "革", "珙", "乌", "鍋", "穴", "石", "珺",
576 | "熹", "诞",
577 | "<", "腉", "姊", "钧", "罪", "拆", "赊", "殒", "堇", "仑", "掺", "塃", "獴", "迥", "盦", "檬", "益",
578 | "居", "鼑",
579 | "异", "嘻", "悔", "旮", "况", "時", "阋", "洛", "線", "#", "型", "迕", "睇", "橱", "笊", "蛞", "愚",
580 | "茉", "镈",
581 | "镞", "垭", "扁", "泫", "搬", "古", "书", "疸", "痨", "黟", "墉", "料", "并", "ㆍ", "裳", "鞑", "湮",
582 | "柠", "颐",
583 | "形", "━", "逹", "硁", "置", "韦", "瓞", "象", "殽", "均", "浓", "瞓", "椐", "洨", "乱", "襜", "终",
584 | "優", "睹",
585 | "敦", "鼬", "唆", "佼", "財", "瘃", "H", "痳", "勺", "依", "虎", "蕖", "玄", "缓", "滢", "^", "骅",
586 | "诘", "弋",
587 | ":", "∩", "廪", "缈", "造", "蕉", "孖", "嫒", "寨", "意", "岽", "庶", "罗", "瞢", "酹", "蔟", "赴",
588 | "烂", "栋",
589 | "格", "矛", "驯", "词", "嗦", "剀", "蓓", "期", "鏢", "羑", "奴", "椱", "A", "狗", "烟", "蹬", "案",
590 | "记", "讴",
591 | "鳑", "侯", "霏", "焜", "沬", "份", "酦", "芗", "庚", "瑗", "鹎", "穗", "鲠", "肛", "厄", "蜔", "學",
592 | "伊", "⑥",
593 | "琪", "邒", "少", "霖", "蓖", "猜", "塾", "肾", "罃", "伐", "钩", "骈", "溟", "饵", "莉", "é", "刖",
594 | "洯", "堉",
595 | "锝", "趔", "七", "萁", "竹", "憾", "蚨", "离", "柔", "替", "侑", "飙", "气", "震", "厥", "备", "刻",
596 | "顽", "瞽",
597 | "腄", "雄", "燃", "旬", "简", "翠", "熥", "◇", "吃", "囡", "玙", "铷", "暖", "配", "傻", "窄", "皈",
598 | "夼", "舂",
599 | "乜", "苩", "攉", "雠", "茇", "锈", "酰", "粮", "祝", "考", "堍", "鳅", "彬", "▲", "孝", "蠊", "顇",
600 | "娲", "腥",
601 | "$", "珠", "厂", "诠", "蹓", "轼", "嵫", "捩", "硗", "胺", "证", "膀", "」", "胯", "钷", "毂", "柙",
602 | "深", "沄",
603 | "匹", "8", "爷", "礳", "秏", "窜", "魑", "d", "转", "烆", "屿", "眙", "極", "袤", "護", "V", "狂",
604 | "柑", "玠",
605 | "氩", "’", "馊", "玛", "坢", "%", "燔", "颗", "舅", "暂", "艾", "芹", "溏", "晰", "件", "琚", "仿",
606 | "祾", "酤",
607 | "騠", "揳", "鲫", "蜥", "仨", "牺", "步", "讓", "港", "煲", "铴", "腦", "鳝", "危", "鋪", "冠", "正",
608 | "柽", "抍",
609 | "掘", "控", "娴", "娀", "離", "手", "臾", "酗", "筼", "煸", "弹", "照", "哎", "毒", "颀", "诙", "刚",
610 | "搢", "䧳",
611 | "峒", "滋", "\\", "匀", "黉", "毓", "娠", "床", "浪", "祐", "铟", "4", "?", "凄", "飗", "蚍", "葑",
612 | "抗", "鹞",
613 | "糸", "红", "英", "违", "橡", "眷", "防", "缬", "龠", "察", "仍", "辇", "减", "闫", "箴", "龍", "館",
614 | "屙", "翙",
615 | "媽", "涴", "到", "旻", "删", "瞾", "鏖", "咭", "豨", "荘", "炭", "畼", "构", "锘", "鉫", "候", "扇",
616 | "繄", "猩",
617 | "瘵", "恺", "贵", "榦", "息", "恽", "胎", "狰", "雜", "辋", "璜", "硈", "泠", "呔", "蹿", "踹", "摄",
618 | "炀", "坞",
619 | "蹄", "裝", "赛", "蝥", "塔", "靳", "荬", "找", "仡", "淮", "比", "淆", "义", "淝", "卢", "辟", "寂",
620 | "庒", "鳯",
621 | "暲", "景", "邪", "腻", "赍", "甍", "讲", "哌", "嶝", "鎌", "总", "缱", "问", "磛", "谅", "拉", "靈",
622 | "奭", "沆",
623 | "茔", "羅", "鄠", "網", "吏", "懵", "鑫", "歌", "黹", "嵘", "涞", "碳", "崂", "婥", "赞", "镑", "購",
624 | "幺", "鸰",
625 | "饟", "蝌", "忝", "懒", "禺", "梽", "齉", "恳", "拯", "弥", "荡", "芾", "幪", "厌", "馒", "蜘", "欸",
626 | "吣", "1",
627 | "却", "榻", "碾", "袂", "錎", "钬", "無", "嬉", "笞", "蹴", "视", "雇", "创", "椟", "6", "瘁", "斜",
628 | "傥", "喃",
629 | "炷", "秾", "嘱", "茀", "犄", "窑", "庀", "潍", "伦", "䀲", "凉", "Р", "撻", "萜", "二", "倨", "蔑",
630 | "捕", "勚",
631 | "士", "鈇", "踺", "啤", "彧", "缪", "述", "傅", "颅", "畸", "畜", "滗", "慭", "琎", "斌", "参", "胳",
632 | "骖", "稠",
633 | "汰", "铻", "闯", "留", "蘘", "沏", "亦", "择", "華", "禽", "砟", "祼", "狃", "噫", "狼", "寤", "跪",
634 | "浠", "·",
635 | "费", "瓘", "鼹", "锪", "箢", "垣", "慊", "虏", "秩", "偉", "镏", "钯", "恐", "鹃", "菇", "炸", "潮",
636 | "蟀", "硂",
637 | "偌", "哏", "验", "桉", "阴", "初", "掴", "鹺", "峨", "赋", "舉", "裹", "赶", "土", "淋", "瘌", "沔",
638 | "r", "赀",
639 | "淖", "茯", "怛", "谜", "洗", "似", "舡", "纳", "晓", "R", "诐", "痹", "漪", "顺", "挛", "阎", "贝",
640 | "钰", "惬",
641 | "疬", "菀", "埘", "怙", "部", "译", "鲭", "窋", "敢", "夜", "撰", "珅", "特", "襕", "癖", "胡", "⒃",
642 | "附", "擘",
643 | "痢", "尬", "鉴", "瞋", "膨", "阽", "挲", "⒄", "骎", "帕", "缕", "计", "障", "鳆", "隹", "朔", "碹",
644 | "当", "迦",
645 | "氙", "蘑", "妓", "炬", "苊", "萎", "浈", "沥", "绯", "壤", "噱", "蹾", "驶", "葱", "孕", "羹", "钻",
646 | "農", "勝",
647 | "膈", "灿", "赆", "靿", "耱", "陪", "忙", "缰", "奶", "儒", "个", "朱", "燹", "琮", "轷", "錾", "箅",
648 | "澳", "嗥",
649 | "攥", "没", "匿", "鲆", "|", "矣", "他", "鸶", "芸", "B", "髑", "街", "巿", "廣", "盯", "監", "鲸",
650 | "胭", "凬",
651 | "寿", "挝", "绽", "+", "劝", "究", "眢", "集", "衙", "卷", "j", "跶", "牡", "畯", "貅", "销", "發",
652 | "咱", "蓊",
653 | "揣", "咝", "琶", "荦", "阌", "盅", "嘹", "苟", "醮", "洪", "鲧", "钒", "柱", "氨", "旰", "冽", "茭",
654 | "嵇", "粲",
655 | "蛾", "訾", "辔", "N", "尹", "趿", "蹲", "疟", "祠", "段", "車", "网", "⒉", "舷", "廐", "侣", "棵",
656 | "粜", "觐",
657 | "铼", "锁", "兒", "舁", "时", "垦", "版", "摈", "扳", "见", "腮", "嫖", "痭", "呆", "簖", "伋", "鳙",
658 | "珊", "麂",
659 | "既", "谴", "热", "超", "蠕", "铞", "e", "殓", "因", "锿", "文", "禊", "皙", "鑙", "爹", "鋼", "忻",
660 | "秣", "镁",
661 | "奠", "橉", "畺", "笮", "疹", "湝", "龟", "殃", "毵", "溃", "勢", "索", "砉", "阼", "堞", "酥", "冁",
662 | "喊", "¥",
663 | "幛", "娇", "锲", "蕃", "铘", "铍", "鴿", "响", "傲", "脏", "杓", "罕", "笥", "弦", "但", "缃", "扬",
664 | "盲", "碚",
665 | "幢", "鎖", "缺", "钋", "麽", "禳", "浃", "啄", "昧", "蒴", "帙", "琏", "咧", "舰", "亵", "浊", "豳",
666 | "衲", "俏",
667 | "镵", "浩", "勾", "槛", "榈", "徙", "鹤", "洹", "铂", "揎", "棕", "挦", "挫", "阆", "衹", "甚", "近",
668 | "】", "簏",
669 | "汽", "踮", "淌", "檇", "痔", "谝", "钙", "蕞", "蔯", "兆", "蔽", "后", "蚬", "谸", "芟", "枞", "叫",
670 | "栗", "餘",
671 | "营", "郝", "氯", "㺃", "狍", "冏", "庛", "纱", "泼", "碍", "认", "邓", "茵", "饧", "闟", "惝", "裙",
672 | "噙", "忘",
673 | "虬", "群", "S", "佗", "恼", "坟", "肮", "皮", "玃", "在", "赧", "孚", "偾", "镨", "恨", "葡", "西",
674 | "缞", "挠",
675 | "逃", "吾", "膪", "焦", "翘", "桧", "变", "渗", "繁", "際", "痘", "撼", "筅", "坑", "前", "玑", "数",
676 | "融", "鲌",
677 | "讦", "窃", "鄌", "伾", "众", "攻", "彪", "锎", "焐", "殛", "锊", "嗉", "枓", "抢", "鞠", "掩", "贾",
678 | "搔", "皁",
679 | "拶", "朗", "渺", "跛", "㛃", "鏾", "慥", "杆", "沈", "戍", "豫", "楠", "爆", "汤", "昉", "耘", "缡",
680 | ".", "允",
681 | "揜", "责", "艟", "裁", "喬", "砹", "鹣", "裼", "啉", "蛳", "酮", "听", "维", "阪", "獾", "浣", "訂",
682 | "瘿", "蜡",
683 | "泖", "蔚", "貔", "致", "禨", "尓", "糺", "绐", "遯", "笄", "邦", "圈", "洟", "缟", "槲", "桹", "镓",
684 | "骒", "髫",
685 | "暾", "像", "縻", "戊", "飧", "驽", "干", "万", "绕", "披", "雅", "桊", "卡", "贲", "吡", "沧", "鳟",
686 | "堂", "扺",
687 | "岱", "封", "鄭", "螣", "瞩", "幞", "邕", "睫", "涩", "自", "趱", "愣", "威", "酊", "罂", "慑", "袴",
688 | "架", "烘",
689 | "现", "灞", "钔", "股", "興", "乍", "噜", "济", "碛", "兀", "诅", "柴", "瓿", "[", "怿", "竦", "白",
690 | "黄", "阶",
691 | "务", "榮", "澹", "谏", "垓", "跸", "繻", "窿", "紊", "陟", "劁", "嗑", "牯", "厉", "敛", "鮕", "嘉",
692 | "蔻", "鼎",
693 | "恒", "硝", "溉", "骘", "窘", "任", "裱", "处", "旨", "舶", "缸", "囹", "笠", "讥", "泜", "脊", "煊",
694 | "淦", "牝",
695 | "硕", "胧", "泚", "溪", "贪", "牛", "答", "瘴", "Q", "炯", "⑤", "篾", "銀", "乩", "杶", "垆", "蛐",
696 | "苔", "啪",
697 | "y", "玮", "琫", "寮", "邂", "後", "僵", "贴", "硭", "枚", "姆", "乎", "讶", "醭", "橥", "脱", "蒈",
698 | "擞", "忪",
699 | "顾", "柚", "褿", "忲", "辖", "铡", "螠", "殉", "喆", "爡", "轮", "棰", "鲉", "跃", "韬", "睡", "嘧",
700 | "袅", "圗",
701 | "檄", "踊", "阀", "题", "桫", "林", "沉", "禚", "散", "麇", "沦", "秋", "导", "斑", "宰", "嘞", "暑",
702 | "笱", "搋",
703 | "擅", "镤", "锶", "L", "厣", "有", "猗", "袆", "绞", "甭", "歧", "跣", "潦", "専", "绑", "飱", "廓",
704 | "磔", "接",
705 | "腓", "窎", "瑁", "飓", "蟪", "俎", "П", "缉", "䘵", "夙", "潟", "桷", "淡", "虺", "恶", "|", "驭",
706 | "怀", "邋",
707 | "辢", "逻", "晖", "蜃", "蜊", "溻", "冢", "尻", "礼", "厝", "亘", "酴", "饔", "悸", "戆", "什", "玚",
708 | "馔", "哔",
709 | "沃", "竑", "葭", "垞", "鏂", "抃", "弄", "去", "焊", "焌", "x", "苇", "與", "炼", "蛄", "莴", "阏",
710 | "薷", "禀",
711 | "鸯", "栽", "冒", "姓", "0", "尃", "蜞", "毗", "骟", "秸", "荸", "柈", "恬", "赡", "侏", "兑", "蝤",
712 | "荷", "徳",
713 | "押", "挣", "腰", "宣", "鸵", "葳", "遘", "讨", "狒", "涿", "囤", "邃", "蒜", "疑", "脍", "嘟", "鹠",
714 | "吻", "鄹",
715 | "耦", "华", "霸", "侥", "勒", "挞", "臊", "尺", "让", "榆", "阝", "鳚", "灾", "鲬", "艿", "Ⅱ", "锩",
716 | "攮", "蚊",
717 | "蔁", "唝", "涅", "挹", "淏", "鏊", "氵", "鹕", "律", "對", "粱", "恫", "挻", "滏", "叮", "‰", "鼯",
718 | "绫", "秉",
719 | "怩", "質", "岐", "菊", "佤", "帏", "骺", "爰", "珉", "耪", "乞", "郕", "鲱", "雷", "蒿", "不", "啐",
720 | "侓", "郓",
721 | "歼", "拒", "胗", "寕", "旒", "勁", "婢", "诌", "蹂", "姐", "媳", "歃", "拐", "辐", "拟", "醯", "雌",
722 | "点", "玟",
723 | "您", "鲨", "载", "藩", "罔", "噀", "抹", "萏", "补", "蝎", "辈", "劢", "乚", "唔", "瓜", "恿", "蟭",
724 | "涸", "纬",
725 | "睽", "樣", "帻", "蓥", "谯", "柯", "渴", "脁", "诲", "福", "③", "熊", "羌", "疴", "袖", "虿", "杏",
726 | "覌", "易",
727 | "醾", "筒", "肤", "苷", "柃", "榇", "酬", "癸", "啰", "眛", "稷", "展", "鸾", "祢", "蝾", "敵", "毛",
728 | "痦", "老",
729 | "赐", "单", "淹", "畋", "符", "奎", "绥", "轾", "鄺", "濩", "眦", "觎", "忾", "璋", "刘", "翳", "菪",
730 | "簟", "胼",
731 | "孫", "機", "獻", "低", "o", "捅", "鳥", "⑨", "卸", "废", "启", "呋", "窥", "巢", "揭", "咴", "趺",
732 | "鲥", "空",
733 | "膄", "崮", "锜", "络", "納", "恤", "刭", "批", "霭", "氧", "钮", "甑", "祲", "粘", "辏", "∶", "臨",
734 | "│", "粪",
735 | "惰", "肼", "浉", "橄", "5", "東", "8", "漁", "浜", "忍", "奂", "遹", "扃", "扦", "入", "欤", "豆",
736 | "悠", "蕴",
737 | "萑", "媄", "龈", "÷", "磙", "鸬", "缎", "嗯", "浕", "木", "陋", "柰", "瘩", "箨", "松", "躁", "鲇",
738 | "彰", "恕",
739 | "楗", "姨", "撅", "诹", "戮", "桓", "棉", "束", "嗍", "庋", "瞿", "郂", "哪", "町", "a", "铁", "洫",
740 | "失", "栳",
741 | "篇", "鳗", "眇", "椿", "義", "就", "都", "镌", "阖", "夭", "拃", "跚", "業", "圬", "演", "篥", "3",
742 | "昼", "從",
743 | "瞍", "蓦", "鼾", "坪", "觫", "鲍", "馿", "妾", "密", "奥", "耰", "佟", "嘤", "貘", "薯", "稽", "届",
744 | "褛", "钠",
745 | "猿", "佈", "倍", "铩", "铙", "踵", "o", "捱", "鹐", "當", "狷", "写", "遆", "钱", "姗", "寸", "综",
746 | "挑", "礶",
747 | "靼", "溯", "湟", "漱", "碰", "职", "味", "Λ", "璁", "壴", "给", "碘", "恭", "苴", "酚", "套", "宕",
748 | "辽", "窀",
749 | "催", "踢", "惟", "璧", "翔", "稿", "癀", "霈", "光", "膑", "妆", "庡", "圾", "躺", "惮", "切", "目",
750 | "梦", "岫",
751 | "飑", "叠", "累", "鴻", "透", "量", "妻", "沨", "俪", "屣", "挚", "w", "厅", "货", "箧", "漦", "隙",
752 | "瘥", "妃",
753 | "門", "鹦", "隳", "龆", "瞪", "跑", "帼", "刺", "起", "鞴", "岸", "渫", "莽", "髭", "耜", "瑛", "葉",
754 | "宵", "绠",
755 | "眭", "畅", "茱", "卜", "濂", "浍", "冈", "脬", "厘", "夔", "纟", "槚", "哐", "萋", "曼", "膳", "潲",
756 | "啜", "啊",
757 | "猾", "捉", "箕", "㐂", "藝", "艘", "園", "妲", "灵", "蚌", "范", "&", "疥", "陑", "洒", "唾", "a",
758 | "婄", "谋",
759 | "t", "唬", "宓", "瓷", "︰", "焗", "默", "噔", "菡", "恃", "亩", "边", "啟", "颞", "啬", "盟", "墩",
760 | "汭", "缝",
761 | "魇", "酡", "疗", "梾", "尾", "鹿", "锔", "溦", "酃", "囊", "掉", "罥", "报", "诤", "喹", "蕙", "割",
762 | "蠢", "兼",
763 | "俺", "升", "屦", "獠", "辣", "跹", "颧", "宪", "抬", "咿", "沲", "旗", "荩", "傒", "鳳", "變", "偈",
764 | "薹", "钭",
765 | "垧", "谪", "躐", "谀", "R", "字", "怆", "陵", "追", "迓", "舞", "卲", "捲", "麾", "税", "方", "竴",
766 | "壹", "射",
767 | "轫", "塞", "僧", "椠", "突", "阕", "惫", "U", "佞", "秒", "友", "視", "莹", "攒", "荻", "俅", "筐",
768 | "能", "刓",
769 | "拍", "浥", "揽", "谨", "军", "巷", "怵", "额", "恪", "荀", "糍", "湎", "褙", "觇", "效", "估", "噩",
770 | "恍", "聚",
771 | "涛", "式", "兜", "汔", "祃", "銘", "烺", "瑄", "枘", "丁", "樗", "堙", "窗", "號", "鬣", "阈", "乳",
772 | "簇", "绳",
773 | "淞", "]", "征", "聩", "凸", "礓", "柘", "懂", "㧎", "纷", "里", "爸", "靥", "莞", "馅", "仞", "芏",
774 | "莳", "殪",
775 | "煌", "落", "佚", "帱", "诶", "家", "将", "浯", "抿", "讫", "趸", "筢", "绩", "原", "专", "滂", "嗳",
776 | "踬", "泱",
777 | "體", "蜱", "绵", "伻", "埗", "妤", "蔺", "赳", "嘢", "梨", "鹪", "烤", "镦", "赉", "崞", "蚰", "骝",
778 | "幅", "汴",
779 | "丽", "访", "叩", "羼", "亓", "恸", "燥", "笤", "丑", "枰", "守", "蜚", "戈", "高", "q", "瓻", "隘",
780 | "H", "南",
781 | "剎", "扭", "骠", "孜", "园", "锬", "审", "¥", "罚", "购", "裰", "泔", "醌", "醒", "绎", "莪", "掬",
782 | "睾", "鹁",
783 | "蛊", "票", "剃", "释", "调", "黛", "撩", "篱", "茌", "敓", "蜜", "魉", "鳤", "昽", "俳", "辁", "键",
784 | "犯", "嶙",
785 | "狈", "邬", "枋", "婊", "憎", "督", "救", "措", "足", "码", "栟", "虼", "棻", "阅", "肊", "坛", "鸱",
786 | "侩", "烫",
787 | "湉", "脐", "戾", "旎", "膚", "椒", "境", "绛", "濛", "蓄", "章", "压", "窦", "彖", "阜", "咻", "神",
788 | "存", "诺",
789 | "課", "覺", "鲈", "渚", "「", "缢", "仓", "氅", "筇", "桴", "荥", "些", "纯", "肋", "退", "妪", "别",
790 | "書", "租",
791 | "嚼", "芘", "笳", "涰", "馐", "熵", "犹", "朕", "猪", "蔸", "參", "觳", "舖", "蝙", "骏", "织", "躏",
792 | "纹", "锹",
793 | "蛉", "撑", "氽", "茶", "俛", "誠", "胖", "崽", "炫", "乘", "把", "趑", "谵", "骧", "犍", "鸮", "灌",
794 | "焯", "倭",
795 | "狁", "盱", "踱", "滠", "儡", "诸", "芽", "駆", "蹼", "虱", "祇", " ", "蠡", "衄", "谬", "蒍", "婺",
796 | "蘧", "博",
797 | "捍", "磁", "慷", "釂", "蛩", "钕", "祎", "呑", "贫", "斗", "菅", "操", "规", "硼", "惕", "丫", "俭",
798 | "肿", "骀",
799 | "砼", "句", "茛", "闶", "钏", "饻", "圠", "萌", "魏", "铃", "摞", "┅", "伎", "獭", "田", "钴", "峭",
800 | "魅", "捋",
801 | "唼", "鹅", "祚", "嬷", "圖", "抄", "嶂", "鸳", "溧", "钵", "嗽", "墠", "锌", "愈", "併", "踟", "羯",
802 | "翅", "纠",
803 | "勻", "岚", "菖", "便", "祈", "毳", "屹", "掰", "倬", "扛", "巴", "拮", "绁", "跌", "飯", "嵯", "翮",
804 | "堤", "诃",
805 | "腑", "皆", "鄂", "胾", "片", "这", "浙", "雨", "鼱", "袼", "鹊", "厢", "蛣", "摇", "蛮", "揍", "⒅",
806 | "啱", "薇",
807 | "岈", "兔", "谇", "纶", "肉", "崩", "甩", "涪", "馼", "铣", "锚", "丙", "雲", "烹", "钦", "撄", "铬",
808 | "令", "虮",
809 | "湊", "禹", "抖", "喏", "旺", "畲", "戬", "嗷", "釜", "车", "缀", "玕", "谐", "啁", "怎", "下", "惑",
810 | "恅", "藿",
811 | "筰", "帐", "祸", "镝", "喵", "刁", "习", "藏", "墓", "护", "聲", "箦", "严", "按", "谛", "睨", "艚",
812 | "歉", "蟮",
813 | "胶", "盍", "鳃", "狯", "垫", "杠", "线", "3", "葖", "t", "熬", "虞", "嶶", "篮", "黻", "墒", "氟",
814 | "嫠", "漕",
815 | "腾", "哟", "玫", "撇", "垍", "靛", "翼", "淅", "省", "斥", "稞", "蠼", "谩", "埠", "蘸", "刊", "烝",
816 | "宁", "鹚",
817 | "龊", "苪", "袷", "诧", "细", "蒌", "焅", "2", "筹", "扒", "卮", "捞", "净", "菲", "逮", "槍", "蛎",
818 | "莱", "黠",
819 | "逖", "辚", "剥", "啴", "诿", "楱", "氪", "领", "嗒", "藐", "惜", "甘", "佾", "嵴", "胫", ";", "晳",
820 | "锣", "瞅",
821 | "缷", "耶", "搤", "策", "咽", "邀", "霾", "悟", "属", "鸪", "牴", "贞", "趁", "丞", "瘆", "豌", "著",
822 | "饿", "筠",
823 | "划", "璇", "损", "卵", "腒", "畏", "盥", "耐", "圏", "拓", "蒙", "鋫", "劙", "蹦", "熘", "烊", "匏",
824 | "咔", "轘",
825 | "沽", "菩", "罴", "磉", "炖", "假", "枪", "龙", "俸", "焱", "四", "─", "毫", "涨", "浇", "椰", "賣",
826 | "蘇", "真",
827 | "安", "坝", "枕", "鸼", "昵", "亨", "苤", "祷", "枧", "赟", "菑", "鳂", "戌", "悄", "種", "鳢", "嗣",
828 | "電", "颥",
829 | "妯", "谟", "蜒", "训", "泍", "洁", "勇", "哿", "扰", "蟆", "螂", "刃", "絜", "曪", "乒", "湖", "鞨",
830 | "懜", "夤",
831 | "哓", "胥", "桞", "俇", "肣", "半", "于", "橼", "锑", "熙", "甜", "槌", "盾", "屃", "缗", "共", "碗",
832 | "凇", "笔",
833 | "阿", "擗", "袍", "敉", "钾", "俶", "蚪", "琤", "凱", "辕", "à", "恣", "皴", "創", "寥", "妳", "腈",
834 | "畤", "迤",
835 | "垠", "触", "趙", "铤", "逊", "羊", "碉", "锱", "骨", "仄", "斟", "俚", "啡", "芩", "迫", "杷", "种",
836 | "鹄", "牗",
837 | "耑", "艇", "芰", "整", "慙", "飛", "甓", "岩", "鸦", "黎", "僊", "糁", "谈", "洋", "椑", "健", "〕",
838 | "內", "言",
839 | "掷", "倚", "姬", "矿", "灯", "阐", "凋", "銮", "豇", "瑰", "抓", "噪", "堋", "吁", "妈", "庥", "彳",
840 | "鄗", "闩",
841 | "夫", "0", "庠", "悬", "妙", "琵", "着", "首", "熣", "瞰", "揆", "燚", "条", "姜", "滘", "麓", "鳉",
842 | "椀", "蓿",
843 | "廠", "泌", "蝈", "倕", "丛", "耍", "且", "蝇", "凉", "豐", "泪", "臼", "服", "刍", "織", "渎", "尥",
844 | "甙", "埋",
845 | "珏", "援", "祖", "彊", "臱", "惦", "葴", "礁", "达", "橋", "钨", "崦", "醐", "巳", "中", "颜", "溠",
846 | "铹", "负",
847 | "抠", "愎", "罘", "雩", "胝", "冱", "筵", "篙", "材", "肓", "○", "迅", "腼", "橙", "仵", "茏", "慵",
848 | "齌", "琯",
849 | "疃", "貢", "豉", "瞟", "忉", "禄", "通", "咒", "愫", "秕", "筜", "觖", "州", "渑", "胆", "喑", "張",
850 | "衖", "洺",
851 | "眉", "榞", "色", "邶", "攫", "堑", "淬", "嗪", "肐", "殣", "辊", "隧", "献", "潤", "蓺", "函", "鹱",
852 | "轭", "劭",
853 | "椁", "膜", "亹", "侧", "貂", "哚", "磴", "蠋", "囔", "险", "伶", "世", "菥", "莶", "瘾", "燫", "延",
854 | "∵", "毋",
855 | "羧", "无", "雎", "曛", "沚", "巍", "g", "熄", "恰", "伷", "開", "冻", "颛", "支", "⑦", "鞥", "赖",
856 | "试", "泮",
857 | "联", "沮", "穰", "è", "峻", "滿", "豊", "刎", "鴈", "覆", "串", "锃", "春", "储", "矍", "哺", "评",
858 | "猁", "愉",
859 | "疳", "閃", "奄", "甲", "墦", "頭", "锫", "俦", "玩", "搀", "砭", "流", "橇", "泅", "琇", "趣", "∧",
860 | "辑", "灊",
861 | "貴", "迮", "摹", "霄", "濟", "限", "彀", "匪", "缂", "觚", "奇", "诋", "灼", "萘", "狠", "澥", "岂",
862 | "悺", "闾",
863 | "麋", "号", "槽", "姹", "陉", "瑯", "尉", "h", "绖", "宿", "戋", "粝", "砂", "该", "鞧", "翯", "釘",
864 | "铢", "窨",
865 | "設", "⒆"]
--------------------------------------------------------------------------------
/src/test/java/top/gcszhn/d4ocr/OCREngineTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright © 2022 Zhang.H.N.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (thie "License");
5 | * You may not use this file except in compliance with the license.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://wwww.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language govering permissions and
14 | * limitations under the License.
15 | */
16 | package top.gcszhn.d4ocr;
17 |
18 | import org.junit.Before;
19 | import org.junit.Test;
20 | import top.gcszhn.d4ocr.utils.IOUtils;
21 |
22 | import java.awt.image.BufferedImage;
23 | import java.io.IOException;
24 |
25 | public class OCREngineTest {
26 | private OCREngine engine;
27 |
28 | @Before
29 | public void beforeTest() {
30 | engine = OCREngine.instance();
31 | }
32 |
33 | @Test
34 | public void recognizeTest() throws IOException {
35 | String[] name = {
36 | "AENZ", "ALNQ", "KVXZ", "DKQT", "极速换新", "8A62N1", "九乘六等于?", "jepv"
37 | };
38 | for (String value : name) {
39 | for (int i=0; i < 50; i++) {
40 | BufferedImage image = IOUtils.read("testData/" + value + ".png");
41 | String predict = engine.recognize(image);
42 | if (predict == null) predict = "";
43 | System.out.printf("Predict: %s, True: %s\n", predict, value);
44 | Runtime runtime = Runtime.getRuntime();
45 | System.out.printf("Memory: %dMB/%dMB\n",
46 | (runtime.totalMemory() - runtime.freeMemory()) >> 20,
47 | runtime.maxMemory() >> 20 );
48 | }
49 | }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/templete/license.temp:
--------------------------------------------------------------------------------
1 | Copyright © 2022 Zhang.H.N.
2 |
3 | Licensed under the Apache License, Version 2.0 (thie "License");
4 | You may not use this file except in compliance with the license.
5 | You may obtain a copy of the License at
6 |
7 | http://wwww.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language govering permissions and
13 | limitations under the License.
--------------------------------------------------------------------------------
/testData/2AMLyA.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GCS-ZHN/ddddocr-for-java/b7e705b67002b9d1676b3ca8eefd3f7daf0f9489/testData/2AMLyA.jpg
--------------------------------------------------------------------------------
/testData/8A62N1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GCS-ZHN/ddddocr-for-java/b7e705b67002b9d1676b3ca8eefd3f7daf0f9489/testData/8A62N1.png
--------------------------------------------------------------------------------
/testData/AENZ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GCS-ZHN/ddddocr-for-java/b7e705b67002b9d1676b3ca8eefd3f7daf0f9489/testData/AENZ.png
--------------------------------------------------------------------------------
/testData/ALNQ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GCS-ZHN/ddddocr-for-java/b7e705b67002b9d1676b3ca8eefd3f7daf0f9489/testData/ALNQ.png
--------------------------------------------------------------------------------
/testData/ALOX.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GCS-ZHN/ddddocr-for-java/b7e705b67002b9d1676b3ca8eefd3f7daf0f9489/testData/ALOX.png
--------------------------------------------------------------------------------
/testData/BFOY.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GCS-ZHN/ddddocr-for-java/b7e705b67002b9d1676b3ca8eefd3f7daf0f9489/testData/BFOY.png
--------------------------------------------------------------------------------
/testData/BGKR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GCS-ZHN/ddddocr-for-java/b7e705b67002b9d1676b3ca8eefd3f7daf0f9489/testData/BGKR.png
--------------------------------------------------------------------------------
/testData/BOPY.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GCS-ZHN/ddddocr-for-java/b7e705b67002b9d1676b3ca8eefd3f7daf0f9489/testData/BOPY.png
--------------------------------------------------------------------------------
/testData/DKQT.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GCS-ZHN/ddddocr-for-java/b7e705b67002b9d1676b3ca8eefd3f7daf0f9489/testData/DKQT.png
--------------------------------------------------------------------------------
/testData/KVXZ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GCS-ZHN/ddddocr-for-java/b7e705b67002b9d1676b3ca8eefd3f7daf0f9489/testData/KVXZ.png
--------------------------------------------------------------------------------
/testData/ORVW.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GCS-ZHN/ddddocr-for-java/b7e705b67002b9d1676b3ca8eefd3f7daf0f9489/testData/ORVW.png
--------------------------------------------------------------------------------
/testData/f233g.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GCS-ZHN/ddddocr-for-java/b7e705b67002b9d1676b3ca8eefd3f7daf0f9489/testData/f233g.png
--------------------------------------------------------------------------------
/testData/jepv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GCS-ZHN/ddddocr-for-java/b7e705b67002b9d1676b3ca8eefd3f7daf0f9489/testData/jepv.png
--------------------------------------------------------------------------------
/testData/九乘六等于?.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GCS-ZHN/ddddocr-for-java/b7e705b67002b9d1676b3ca8eefd3f7daf0f9489/testData/九乘六等于?.png
--------------------------------------------------------------------------------
/testData/极速换新.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GCS-ZHN/ddddocr-for-java/b7e705b67002b9d1676b3ca8eefd3f7daf0f9489/testData/极速换新.png
--------------------------------------------------------------------------------