OCR图像识别测试页面用于测试阿里云OCR服务,支持通用文字识别、发票识别、身份证识别等功能。
路径: ruoyi-system/src/main/java/com/ruoyi/system/controller/OCRController.java
接口列表:
- POST /system/ocr/recognize - 上传图片进行OCR识别
- GET /system/ocr/recognizeByUrl - 通过URL进行OCR识别
- POST /system/ocr/extractFields - 提取OCR结果中的目标字段
路径: ruoyi-system/src/main/java/com/ruoyi/system/utils/AliOCRUtil.java
主要方法:
- recognizeTextByFile() - 本地文件识别
- recognizeTextByUrl() - URL图片识别
- recognizeInvoice() - 发票识别
- recognizeIdCard() - 身份证识别
- recognizeGeneral() - 通用文字识别
- extractTargetFields() - 字段提取
路径: ruoyi-ui/src/views/system/ocr/index.vue
功能特性:
- 拖拽上传图片
- 图片预览
- 识别类型选择(通用/发票/身份证)
- 实时显示识别结果
- 自动提取关键字段
- 原始JSON数据查看
- 一键复制识别结果
路径: ruoyi-ui/src/api/system/ocr.js
# 在MySQL中执行
mysql -u root -p your_database < sql/ocr_test_menu.sql
或在Navicat等工具中执行 sql/ocr_test_menu.sql 文件
文件: ruoyi-admin/src/main/resources/application.yml
ocr:
accessKeyId: YOUR_ACCESS_KEY_ID
accessKeySecret: YOUR_ACCESS_KEY_SECRET
重要: 请替换为你自己的阿里云AccessKey
cd ruoyi-admin
mvn spring-boot:run
登录后台管理系统:
1. 进入 系统管理 > 角色管理
2. 选择需要使用OCR功能的角色
3. 分配权限:system:ocr:test 和 system:ocr:recognize
菜单路径:**系统工具 > OCR测试**
URL: http://localhost/system/ocr
路径: ruoyi-system/src/main/java/com/ruoyi/system/config/OCRConfig.java
@Component
@ConfigurationProperties(prefix = "ocr")
public class OCRConfig {
private String accessKeyId;
private String accessKeySecret;
// getter和setter
}
默认使用杭州节点:ocr-api.cn-hangzhou.aliyuncs.com
如需更改,修改 AliOCRUtil.java 中的 ENDPOINT 常量。
System.getProperty("java.io.tmpdir")原因: 配置的AccessKey不正确
解决:
- 检查 application.yml 中的配置
- 确认AccessKey ID和Secret正确
- 确认账号已开通OCR服务
原因: 文件过大或网络问题
解决:
- 检查图片大小是否超过4MB
- 检查网络连接
- 查看浏览器控制台错误信息
原因: 图片质量问题或不支持的图片格式
解决:
- 使用清晰的图片
- 确保图片包含可识别的文字
- 尝试转换图片格式
原因: 用户角色未分配OCR权限
解决:
- 联系管理员分配权限
- 或在角色管理中勾选相关权限
在前端页面添加选项:vue <el-option label="营业执照识别" value="BusinessLicense" />
后端会自动支持,无需修改代码
修改 AliOCRUtil.java 中的 extractTargetFields() 方法:
// 添加自定义提取逻辑
if (text.contains("自定义关键字")) {
extracted.put("customField", text);
}
如有问题,请联系技术支持团队或提交Issue。