1.要在百度AI去下载C SDK包,里面有封装好的接口供我们使用
点使用说明,如图
写了个测试代码demo
#include "ocr.h"
using namespace std;
int main()
{
// 设置APPID/AK/SK
std::string app_id = "自己的 APPID";
std::string api_key = "你的 Api key";
std::string secret_key = "你的 Secret Key";
aip::Ocr client(app_id, api_key, secret_key);
Json::Value result;
std::string image;
aip::get_file_content("90.jpg", &image);
// 调用车牌识别
result = client.license_plate(image, aip::null);
// 如果有可选参数
std::map<std::string, std::string> options;
options["multi_detect"] = "true";
// 带参数调用车牌识别
result = client.license_plate(image, options);
std::cout<<result;
std::cout<<"---------------------------"<<std::endl;
std::cout<<result["words_result"]<<endl;
cout<<"88888888"<<endl;
Json::Value number;
number = result["words_result"];
// cout<<number[0]["number"].asString().c_str();
string nnumber = number[0]["number"].asString().c_str();
printf("number: %s\n",nnumber.c_str());
// const char *nb = number[0]["number"].asString().c_str();
// cout<<"nb:"<<nb;
return 0;
}
测试效果
得到数据还要对数据进行解析,c++解析json方法,我也是看其他博主的,后面的
下面才是重头戏,因为要链接库,所以依次执行下面的目录安装好所需要的库
apt-get update
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install libjsoncpp-dev
sudo apt-get install libssl-dev
最后的编译命令,要链接库
g++ demo.cpp -o demo -lcurl -lcrypto -ljsoncpp
如果你想在哪个平台运行,就要在哪个平台安装好这些库,要不然就会出现这样的错误
./demo: error while loading shared libraries: libjsoncpp.so.1: cannot open shared object file: No such file or directory
心得:
这个是我使用GEC6818开发板的QT项目,是智能停车场,所以要对进出的车辆进行车牌识别,之前在PC端的QT可以直接访问百度AI的车牌识别的接口,但是开发板不支持HTTP协议,所以先将开发板拍摄到的车牌图片发送给阿里云服务器,再在阿里云服务器去访问接口,把结果再返回给到开发板这边进行数据库保存信息。
昨晚一个网上都在搞C/C++访问HTTP接口的测试,一直到早上也没搞定,原因是HTTP的包体数据一直识别不了,我用的是其他古诗词的API接口,参数只有自己的KEY值,把KEY值放到包体里面就是不行,检测不到KEY值,所以我索性从百度AI提供的方法入手,功夫不负有心人,终于实现的这个功能,接下来就是完善服务器和客户端,关键的技术点已经解决,好开心,嘻嘻共勉!!