百度文字识别OCR

本文介绍了如何在Java项目中使用单例模式初始化AipOcr客户端,包括获取参数、在项目启动时创建实例以及进行文字识别的具体步骤,还涉及了JSON数据的处理和实体类的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.注册账号,获取必要参数

官方文档地址在这里插入图片描述

2.单例模式初始化Java客户端AipOcr

/**
 * @author byChen
 * @date 2021/9/29
 */
public class SingAipocr {
   
    /**
     * 将构造方法私有化,保证其他地方new不出来
     */
    private SingAipocr(){
   }

    /**
     * 在内部使用静态修饰,new一个该对象,该对象就是唯一单例(私有化方法在内部可以使用)
     */
    private static final AipOcr one = new AipOcr("AppID", "API Key", "Secret Key");


    /**
     * 使用静态修饰,可以用方法名直接点出来方法,而不需要新建对象(实际上因为单例,也新建不出来)
     * @return
     */
    public static AipOcr getAipocr(){
   
        // 可选:设置网络连接参数
        one.setConnectionTimeoutInMillis(2000);
        one.setSocketTimeoutInMillis(60000);
        return one;
    }
}

3.项目启动即创建

/**
 * @author byChen
 * @date 2021/9/29
 */
@Component
@Order
### 实现百度 OCR 文字识别功能 为了在 Vue 项目中实现百度 OCR 文字识别功能,需先安装并配置必要的依赖库。具体来说,`axios`用于发起 HTTP 请求,而自定义工具包 `identification` 则负责处理图像编码与解码操作[^1]。 #### 安装依赖项 通过 npm 或 yarn 来安装所需的第三方库: ```bash npm install axios qs form-data ``` 或者使用 yarn: ```bash yarn add axios qs form-data ``` #### 创建 OCR 工具函数 创建一个新的文件夹 `/utils` 并在其下建立名为 `ocr.js` 的 JavaScript 文件来封装调用百度 API 所需的方法。此模块应导出一个异步函数以便于后续调用[^2]。 ```javascript// utils/ocr.js import axios from 'axios'; const APP_ID = 'your_app_id'; // 替换成自己的APP ID const API_KEY = 'your_api_key'; // 替换成自己的API Key const SECRET_KEY = 'your_secret_key'; // 替换成自己的Secret Key export async function recognizeIDCard(imageBase64) { const url = "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard"; let data = new FormData(); data.append("image", imageBase64); data.append("id_card_side", "front"); // front or back try { const response = await axios({ method: 'post', url, headers: { 'Content-Type': 'multipart/form-data', Authorization: `Bearer ${await getAccessToken()}` }, data }); return Promise.resolve(response.data.words_result); } catch (error) { console.error(error); throw error; } } async function getAccessToken() { const tokenUrl = `https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=${API_KEY}&client_secret=${SECRET_KEY}`; const res = await axios.get(tokenUrl); return res.data.access_token; } ``` 上述代码实现了两个主要的功能:一是获取访问令牌;二是发送图片数据给百度 OCR 接口,并返回解析后的文字信息。 #### 使用 OCR 功能 可以在任何 Vue 组件里引入这个工具函数来进行身份证件扫描等功能开发。下面是一个简单的例子展示如何在一个按钮点击事件处理器中调用该服务: ```vue<!-- components/OcrScanner.vue --> <template> <div class="scanner"> <input type="file" @change="handleFileChange"/> <button @click="submitImage">Submit</button> <p v-if="result">{{ result }}</p> </div> </template> <script> import { ref } from 'vue' import { recognizeIDCard } from '../utils/ocr' export default { setup () { const fileInput = ref(null); const result = ref(''); function handleFileChange(event){ fileInput.value = event.target.files[0]; } async function submitImage(){ if (!fileInput.value) return; const reader = new FileReader(); reader.onloadend = async () => { const base64String = reader.result.split(',')[1]; // 去掉data URL前缀部分 try{ const wordsResult = await recognizeIDCard(base64String); Object.keys(wordsResult).forEach(key=>{ result.value += `${key}: ${wordsResult[key].words}\n`; }); }catch(e){ alert('Error occurred during processing.'); } }; reader.readAsDataURL(fileInput.value); } return { handleFileChange, submitImage, result }; } }; </script> ``` 这段代码展示了怎样读取本地上传的照片文件并通过 Base64 编码转换成字符串形式传递给之前编写的 OCR 函数去分析其中的文字内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值