百度API车牌识别——Restful方式
源码下载地址:https://download.csdn.net/download/redhat588/11798294
Delphi xe 10.3.2 for windows 7 环境编译通过!
测式需要先注册百度API账号,拿到API KEY 和Secret Key后才能获取Token值
第一步:首先获取Token地址

function TfrmMain.GetToken(TokenUrl, lbledtAPIKEY, lbledtSecretKey
: string): string;
begin
with RESTClient1 do
begin
BaseURL := TokenUrl;
end;
with RESTRequest1 do
begin
Method := rmPOST;
AcceptCharSet := 'utf-8';
Params.Clear;
AddParameter('grant_type', 'client_credentials');
AddParameter('client_id', lbledtAPIKEY);
// API ID key
AddParameter('client_secret', lbledtSecretKey);
// API secret key
Execute;
Result := RESTResponse1.Content;
end;
end; function TfrmMain.GetAccessToken(jsonstr: string): string; // 取jsonstring 值
var
jo: TjsonObject;
jv: TjsonValue;
begin
jo := nil;
jo := TjsonObject.Create;
jo := TjsonObject.parsejsonvalue(Tencoding.utf8.getbytes(jsonstr), )
as TjsonObject;
jv := jo.Get('access_token').JsonValue;
Result := jv.Value;
end; procedure TfrmMain.Button1Click(Sender: TObject);
begin
lbledtToken.Text := GetAccessToken(GetToken(lbledtTokenUrl.Text,
lbledtAPIKEY.Text, lbledtSecretKey.Text));
end;
function TfrmMain.GetCarNumJson(AccessToken, CarNumAPI: string): string;
var
strtemp: string;
temp: TjsonObject;
strm: TMemoryStream;
ss: TStringStream;
s: string;
begin
if frmMain.Image1.Picture.Graphic <> nil then
begin
strm := TMemoryStream.Create;
frmMain.Image1.Picture.SaveToStream(strm);
ss := TStringStream.Create('');
strm.Position := ;
EncodeStream(strm, ss); // 将内存流编码为base64字符流
s := ss.DataString;
strm.Free;
ss.Free;
end;
RESTClient1.BaseURL := CarNumAPI;
RESTRequest1.Params.Clear;
RESTRequest1.AddParameter('access_token', AccessToken);
RESTRequest1.AddParameter('image', s);
RESTRequest1.Execute;
Result := RESTResponse1.Content;
end; function TfrmMain.GetCarNum(CarNumJSONStr: String): string;
var
jo: TjsonObject;
jo2: TjsonObject;
jv: TjsonValue;
jsonstr: string; // 要转换的json字符串
jsonstr2: string; // 要转换的json字符串
begin
// 先取出嵌套的那个字符串
jo := TjsonObject.parsejsonvalue(CarNumJSONStr) as TjsonObject;
jsonstr := jo.GetValue('words_result').ToString;
// 再对这个字符串取值
jo2 := TjsonObject.parsejsonvalue(jsonstr) as TjsonObject;
jsonstr2 := jo.GetValue('words_result').ToString;
try
jv := jo2.Get('number').JsonValue;
Result := jv.Value;
finally
jo.Free;
end;
end; procedure TfrmMain.Button2Click(Sender: TObject);
begin
lbledtCarNum.Text := GetCarNum(GetCarNumJson(lbledtToken.Text,
lbledtAPIURL.Text));
end;
最后:结果图

百度API车牌识别——Restful方式的更多相关文章
- 百度AI车牌识别测试
测试背景 百度已发布诸多AI应用,其中包含车牌识别,免费使用量是200次/日.付费的话,按月调用次数在20万次到50万次之间,每日10000次,月费用为0.0035*300000=1050元. 详见: ...
- 利用百度云接口实现车牌识别·python
一个小需求---实现车牌识别. 目前有两个想法 1. 调云在线的接口或者使用SDK做开发(配置环境和变异第三方库麻烦,当然使用python可以避免这些问题) 2. 自己实现车牌识别算法(复杂) 一开始 ...
- Delphi百度文字识别【支持通用文字识别、身份证识别、银行卡识别、驾驶证识别、行驶证识别、车牌识别等功能】
作者QQ:(648437169) 点击下载➨Delphi百度文字识别 百度api文档 [Delphi百度文字识别]支持 通用文字识别.通用文字识别(高精度版).通用文字识别(含位置信 ...
- python利用百度云接口实现车牌识别
一个小需求---实现车牌识别. 目前有两个想法 调云在线的接口或者使用SDK做开发(配置环境和编译第三方库很麻烦,当然使用python可以避免这些问题) 自己实现车牌识别算法(复杂) ! 一开始准备使 ...
- 基于百度AI实现 车牌识别
前言 目前百度的AI接口相对完善,对于文字识别类的操作还需要开发者一一去尝试,去评估这效果到底是怎么的. 文字识别的接口相对简单,官方提供的SDK也集成很好,笔者只是在这上面做了一些前期性的功能数据校 ...
- 树莓派+百度api实现人脸识别
title: 树莓派+百度api实现人脸识别 tags: 树莓派 date: 2018-5-31 20:06:00 --- 树莓派对接百度api 我以前玩安卓的时候一直用的讯飞的平台和api,对于百度 ...
- 百度OCR文字识别API使用心得===com.baidu.ocr.sdk.exception.SDKError[283604]
异常com.baidu.ocr.sdk.exception.SDKError[283604]App identifier unmatch.错误的packname或bundleId.logId::303 ...
- EasyPR--一个开源的中文车牌识别系统
我正在做一个开源的中文车牌识别系统,Git地址为:https://github.com/liuruoze/EasyPR. 我给它取的名字为EasyPR,也就是Easy to do Plate Reco ...
- (办公)百度api的使用
这个只是入门,详细的还得看官方的文档http://lbsyun.baidu.com/index.php?title=jspopular3.0/guide/helloworld 百度地图的“Hello, ...
随机推荐
- Java之Lambda表达式
函数式编程思想概述 面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法——强调做什么,而不是以什么形式做. 面向对象的思想: 做一件事情,找一个能解决这个事情的对 ...
- IT兄弟连 HTML5教程 CSS3揭秘 CSS常见的样式属性和值5
CSS综合实例 在Web页面中经常使用栏目显示分类内容.本例将使用HTML和CSS结合编写一个分类栏目模型,用于演示前面介绍的CSS应用.通过使用独立的文件定义样式表,并在HTML文档中使用link标 ...
- Python之format()函数
Python2.6开始,新增了一种格式化字符串的函数format(),它增强了字符串的格式化功能.(官方推荐) 基本语法是通过{}和:来代替以前的% format()函数可以接收不限个参数,位置可以不 ...
- 连接远程服务器的几种方式/Vscode + Remote
连接远程服务器的几种方式 前言 最近在尝试做网盘,使用的技术栈大概是 .net core + MVC + Mysql + Layui,主要目的是通过这个具体的项目,熟悉熟悉 .net core 开发, ...
- Jedis & spring-data-redis
当我们了解了redis的五大数据类型,手动去敲一敲每个数据类型对应的命令,无论是再来看jedis,还是spring-data-redis都是很轻松的,他们提供的API都是基于原生的redis命令,可读 ...
- C#中获取指定目录下所有目录的名称、全路径和创建日期
场景 指定一个路径,根据这个父级路径获取此目录下所有目录的名称.全路径.创建日期等信息. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众 ...
- windows 下安装beego
好久没写博客了,最近忙于一些杂事,看见有几个博友留言了,未能及时回复,稍后晚点回复诸位博友.不多说了,windows安装beego(请先确保git环境已安装并设置了git环境变量.这个简单网上很多教程 ...
- css知识笔记:水平居中(别只看,请实操!!!)
css实现元素的水平居中. (尝试采用5W2H方法说明): 别只看,请实操!!! What: 1.这篇文档主要描述元素水平方向居中的几种最常见和最实用的几种方式,并说明优缺点. 2.写这篇文章的目的, ...
- vue非父子关系之间通信传值
第一种方法: 通过给vue实例添加自定义属性 <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...
- vue slot内容分发
当需要让组件组合使用,混合父组件的内容和子组件的模板的时候,就会用到slot.这个过程就叫内容分发. 最为常用的是两种slot:一种是匿名slot, 一种是具名slot. 匿名 很好理解: 就是默认, ...