1.準備工作
(1).登陸 百度智能云-管理中心 創建 “文字識別”應用,獲取 “API Key ”和 “Secret Key”:
通用參考 - 鑒權認證機制 | 百度AI開放平臺 (baidu.com)
(2).根據 API Key 和 Secret Key 獲取 AccessToken
2.掃描圖片上傳
// 掃描
setScan() {
uni.chooseImage({
count: 1, //默認9
sizeType: ['original', 'compressed'], //可以指定是原圖還是壓縮圖,默認二者都有
sourceType: ['camera', 'album'], //前者喚起相機,后者從相冊選擇
success: res => {
console.log('img', res);
this.uploadImg(res.tempFilePaths); //上傳圖片
}
});
},
// 圖片上傳
uploadImg(tempFilePaths) {
let that = this;
uni.showLoading({
title: '識別中'
});
//調用后端圖片上傳接口
uni.uploadFile({
url: that.api.baseUrl + '/file/upload',
// header:{},
filePath: tempFilePaths[0], // 要上傳文件資源的路徑
name: 'file', // 文件對應的 key , 開發者在服務器端通過這個 key 可以獲取到文件二進制內容
formData: {
user: 'test'
},
success(res) {
let data = JSON.parse(res.data);
console.log(data);
that.tui.toast('上傳成功');
//調用ocr識別行駛證方法
that.iOCR(data.data.url);
},
fail() {
uni.hideLoading();
that.tui.toast('上傳失敗,請重試');
},
complete() {
uni.hideLoading();
console.log('結束');
}
});
},
3.OCR識別
iOCR(url) {
// 生成assets token
uni.request({
//client_id:第一步獲取到的API Key;client_secret:第一步獲取的Secret Key
url: `https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=xxx&client_secret=xxx`,
method: 'POST',
success: res => {
console.log('assets_token', res.data.access_token);
// 獲取到access_token之后,調用ocr接口
uni.request({
url: `https://aip.baidubce.com/rest/2.0/ocr/v1/vehicle_license?access_token=${res.data.access_token}`,
method: 'POST',
header: { 'Content-Type': 'application/x-www-form-urlencoded' },
data: {
url: url //上傳之后的行駛證url
},
success: res => {
console.log(res);
if (res.data.words_result) {
//識別出的數據
} else {
this.tui.toast('未識別出有效數據,請重新操作');
}
},
fail: res => {
this.tui.toast('網絡錯誤,請重試');
}
});
}
});
},