uniapp 安卓,小程序客戶端調(diào)用百度車牌識(shí)別
準(zhǔn)備工作
創(chuàng)建應(yīng)用
登錄百度智能云平臺(tái)
進(jìn)入安全認(rèn)證栏尚,創(chuàng)建 Access Key
image.png
產(chǎn)品服務(wù)選擇到逊,人工智能 - 文字識(shí)別吮便,創(chuàng)建應(yīng)用骆姐【翟粒可用服務(wù)列表選擇 交通場(chǎng)景OCR捏题,開通對(duì)應(yīng)的 車牌識(shí)別 服務(wù)。
生成 Token
使用創(chuàng)建的 Access Key 和 Secret Key 根據(jù)規(guī)則生成 Access Token
接口調(diào)用
注意車牌識(shí)別接口文檔中請(qǐng)求頭和參數(shù)提交要求肉渴,下面以提交參數(shù) image 為例
圖片 base64 轉(zhuǎn)換
雖然 app 和小程序端都做了轉(zhuǎn)化公荧,不過小程序端沒有對(duì)圖片做壓縮處理
app 端
// 壓縮圖片
/**
* dst 壓縮圖片的地址
* overwrite 是否覆蓋原文件,true 為覆蓋同规。如果不覆蓋原文件循狰,需要在選擇圖片時(shí)候不勾選原圖
**/
plus.zip.compressImage({
src: path,
dst: path,
overwrite: true,
quality: 20,
width: '780px',
height: '1040px',
format: 'jpg'
}, function(res) {
// 讀取圖片 base64 編碼
let reader = new plus.io.FileReader()
reader.onloaded = filData => {
// param 中 img 車牌識(shí)別的提交參數(shù),encodeURL 轉(zhuǎn)換
that.param.img = encodeURL(fileData.target.result)
// 調(diào)用請(qǐng)求接口
}
}, function(err) {
console.log(err)
})
小程序端
uni.getFileSystemManager().readFile({
filePath: path,
encoding: 'base64',
success: res => {
that.param.img = encodeURL(res.data)
// 調(diào)用請(qǐng)求接口
}
})
請(qǐng)求接口
uni.request() {
url: 'https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate?access_token=自己生成的',
header: {
'Content-Type': 'application/x-www-form-urlencoded'
},
method: 'POST',
data: that.param,
success: res => {
console.log(res)
},
fail: err => {
console.log(err)
}
}
注意
- 接口常見問題中提示需要去除 base64 轉(zhuǎn)碼后的圖片頭券勺,如果請(qǐng)求失敗绪钥,可嘗試去除
img.replace('/^data:image\/\w+;base64,/', '')