├── .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 | ![AUR](https://img.shields.io/badge/license-Apache%202.0-blue.svg) 5 | ![Java](https://img.shields.io/badge/Java%2011-passing-success.svg) 6 | ![Maven](https://img.shields.io/badge/Maven%203.6.3-building-success.svg) 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 --------------------------------------------------------------------------------