转自迅为4412开发板项目实战教程

B站视频地址:https://www.bilibili.com/video/BV157411c7sc?p=7

硬件平台:iTOP-4412开发板

项目名称:图像识别项目 

 

 

本文我们来学习利用QT构建一个图形界面并用QT调用百度AI的接口

一.添加arm编译套件

打开QT creator 点击Tools->Options

点击Build&run,并选择Compilers,如下图所示:

点击add,选择gcc->c,并在Compiler path 中选择2014.05编译器的gcc,名字起名为arm-linux-gcc,设置完成后点击apply

点击add,选择gcc->c,并在Compiler path 中选择2014.05编译器的g++,名字起名为arm-linux-g++,设置完成和后点击apply,如下图所示:

点击debuggers,选择add,在path路径里面我们选择2014.05的gdb,name起名为arm-linux-gdb,设置完成后点击apply,如下图所示:

我们把编译好的QT库拷贝到ubuntu的/opt路径下,并解压,如下图所示:

点击kits,然后点击add,在弹出来的name选项中,我们填写ARM,device type,设备类型我们选择桌面,Compiler C和C++我们选择我们刚刚添加的4.4.1的C和C++,Debugger我们选择我们刚刚添加的4.4.1的GDB,QT version我们选择我们刚刚在/opt下解压的qmake,设置完成之后我们点击apply并点击ok。如下图所示:

二.创建一个工程把添加环境变量

点击file->new file or prohect ,创建一个工程,如下图所示:

选择qt widgets

设置工程名称和存放路径,如下图所示:

编译套件选择我们刚刚添加的arm,设置好以后,点击next,如下图所示:

在弹出来的base class选项中,我们选择qwidget,设置好以后选择next,如下图所示:

点击finish,如下图所示:

这样我们这个工程就创建完成了,在添加环境变量之前,我们把我们编译的libv4l-0.6.4库拷贝到/usr/local/opencv-2.4.9/lib/下面,命令如下:

cp -r ./lib/* /usr/local/opencv-2.4.9/lib/

如下图所示:

我们点击pro文件,添加库的环境变量。环境变量如下:

INCLUDEPATH +=  /usr/local/curl/include                     \                    /usr/local/json/include                     \

/usr/local/openssl/include                  \

/usr/local/opencv-2.4.9/include             \

/usr/local/opencv-2.4.9/include/opencv      \

/usr/local/opencv-2.4.9/include/opencv2     \

LIBS +=   /usr/local/curl/lib/libcurl.so.4.5.0        \

/usr/local/json/lib/libjsoncpp.so           \

/usr/local/openssl/lib/libssl.so.1.0.0      \

/usr/local/openssl/lib/libcrypto.so.1.0.0   \

/usr/local/opencv-2.4.9/lib/libopencv*       \

/usr/local/opencv-2.4.9/lib/libv4l1*         \

/usr/local/opencv-2.4.9/lib/libv4l2*        \

/usr/local/opencv-2.4.9/lib/libv4lc*        \

添加完成后如下图所示:

设计UI,添加三个label,一个按钮,一个消息框,为了简单,我们就不布局了,所以qwidge的大小我们要设置成和屏幕分辨率大小一样,这里我使用的是金属壳7寸屏幕,所以我这里设置成了1024*600。

我们把百度AI的SDK拷贝到Ubuntu的QT工程下,如下图所示:

然后右键点击qtcreator中我们的新建的工程,选add existing files,如下图所示:

在我们拷贝到工程下面的SDK中找到百度AI提示需要的头文件,

添加完成如下图所示:

头文件的路径要和我这里保持一致,路径如下:

然后把快速入门的中的client的例子拷贝到widget.cpp里面,拷贝内容如下:

#include "ocr.h"

// 设置APPID/AK/SK

std::string app_id = "你的 App ID";

std::string api_key = "你的 Api key";

std::string secret_key = "你的 Secret Key";

aip::Ocr client(app_id, api_key, secret_key);

拷贝完成如下:

然后把里面的APPID/AK/SK替换成我们第一节课创建的应用中生成的APPID/AK/SK,如下图所示:

替换完成如下图所示:

新建一个函数接着把百度AI 提供的调用的例子直接拷贝过来,如下图所示:

拷贝内容如下:

//我们只要把我们用摄像头拍的照片传到下面的这个函数就可以了 //aip::get_file_content("/assets/sample.jpg", &image)

Json::Value result;

std::string image; aip::get_file_content("/assets/sample.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);

添加完如下图所示:

判断返回值和错误信息,返回格式如下:

错误信息如下:

判断返回值代码:

if(result["error_code"].isNull())

{

return (result["words_result"][0]["number"].asString() + ",欢迎光临.");

}

else

{

return ("识别失败");

}

return ("识别失败");

我们把判断返回值代码写到我们上面新建的std::string eNGetPLatumber(std::string PicturePath)函数下面:如下图所示:

至此,我们识别调用百度的接口的代码已经完成了。

关注迅为公众号,持续更新技术干货。

项目实战-图像识别项目-通过QT制作图形界面并调用百度AI进行图像识别(一)相关推荐

  1. app inventor调用图像识别_项目实战-图像识别项目-通过QT制作图形界面并调用百度AI进行图像识别(一)...

    转自迅为4412开发板项目实战教程 硬件平台:iTOP-4412开发板 项目名称:图像识别项目 本文我们来学习利用QT构建一个图形界面并用QT调用百度AI的接口 一.添加arm编译套件 打开QT cr ...

  2. Linux下QT软件使用C++语言调用百度AI接口实现人脸库人脸搜索

    参考文档Qt+百度AI实现人脸识别之人脸检测_画茧自缚-CSDN博客 本文档对于以上文档进行精简,参考以上文档实现百度AI人脸库管理-人脸搜索:百度AI接口一通具通,可以以此方法扩展. .h部分 #i ...

  3. 软件测试项目实战(Web项目)

    软件测试项目实战(Web项目) 下载地址 资源介绍 共5天的测试项目实战讲解,大小4G.仅供软件测试人员学习交流参考,不可用作其他商业用途. 内容展示

  4. 【Selenium项目实战】项目环境搭建:安装JDK、mysql、Tomcat、jpress和测试系统

    前言 一直想学习自动化测试,但是都没行动,业余时间学习零零碎碎并记录20210416. [Selenium项目实战] 项目环境搭建:安装JDK.mysql.Tomcat.jpress和测试系统 需求分 ...

  5. linux python 图形界面开发_python在linux制作图形界面(snack)

    snack是一个用于在linux制作图形界面(GUI)的模块,该模块由c编写,而且redhat的系统都自带这个模块. 1.获取模块 虽然redhat系统会自带这个模块,但是直接去import snac ...

  6. Qt用户图形界面设计应用(闹钟)

    Qt用户图形界面设计应用(闹钟) 一.Qt介绍 什么是Qt Qt 是一个跨平台的 C++ 图形用户界面库,由挪威 TrollTech 公司于 1995 年底出品,并于 2008年6月17日被NOKIA ...

  7. 百度AI车辆图像识别JavaSDK使用原来这么简单?

    百度AI车辆图像识别SDK简单使用 1.首先我进入百度AI开放平台官方:http://ai.baidu.com/?track=cp:aipinzhuan|pf:pc|pp:AIpingtai|pu:t ...

  8. Android apps 拍立知-基于百度Ai的图像识别与tts语音合成(介绍)

    一款基于百度Ai的图像识别与tts语音合成的Android apps-拍立知. 这款apps是拿来参加小比赛的,理工男没有ui!界面有点小丑. 原理是通过拍照/上传图片,调用百度Ai中的图像通用识别功 ...

  9. Java调用百度API实现图像识别

    Java调用百度API实现图像识别 最近在做一个关于识别的小功能,翻阅了一堆资料,也实践自己去实现这个功能,最后识别的结果不是那么理想.这里介绍一个完全可以商用以及识别率超高的百度ai接口 1.为什么 ...

最新文章

  1. Python TypeError: ‘int‘ object is not iterable
  2. 多个敏捷团队同时做一个项目_您说您的团队很敏捷……但是这个词可能并不代表您的想法。...
  3. 目标检测—YOLO不难学,你只是不会方法!
  4. Java多线程(九)之ReentrantLock与Condition
  5. 枚举对象注释_如何以及何时使用枚举和注释
  6. leetcode三道shell题
  7. IQ不平衡补偿 Lowdin算法
  8. Guitar Pro如何更改五线谱的符杆方向
  9. c 语言dll源码查看,易语言DLL函数查看器源码
  10. php分钟转时间戳,php函数转时间戳
  11. 怎样用计算机表白我爱你,怎样用简单有“内涵”的话向喜欢的人表白 我爱你!...
  12. Maven第7篇:聚合、继承、单继承问题详解
  13. 列联表相关测量--c相关系数
  14. 高仿QQ源码 界面(3)
  15. android中流媒体
  16. VIBE:3D人体姿态预测项目复现笔记
  17. candence pcb走线等长_PCB走线角度选择 - PCB Layout 跳坑指南 - 吴川斌的博客
  18. 使用PS切图时,调整标尺单位
  19. OVERLAPPED结构体类型介绍及作用
  20. Android中使用dimen定义尺寸

热门文章

  1. k8s - service
  2. Centos6 安装python3 pip3 ipython3
  3. 数据库基本原理==嵌套查询
  4. android实现地图功能实现,Android快速实现地图功能(不仅快!而且小!)
  5. canvas学习(html5)画画
  6. Uboot 使用串口Kermit协议传输文件
  7. AMCL中odom的数据处理
  8. win7怎么桌面显示计算机图标不见了,win7显示桌面图标不见了如何恢复【图文】...
  9. DDS作业(作业3)
  10. 博客9-16CSS 三大特性