linux系统中利用QT实现车牌识别的方法

news2024/9/24 23:31:15

      大家好,今天主要和大家分享一下,如何利用QT实现车牌识别的方法。

目录

第一:车牌识别基本简介

第二:车牌识别产品申请

 第三:百度车牌识别API接口

第四:车牌识别综合测试


 

第一:车牌识别基本简介

      很多车牌方案商都有成熟的车牌识别技术,他们是靠这个吃饭的,不开源。当然网上也有一些开 源的车牌识别算法可以参考,但是我们 Qt 教程里不是讲车牌识别算法,因为过于复杂,内容多。 所以本教程也是使用方案商提供的接口来做车牌识别,例程比较简单,百度 AI 接口车牌识别 率非常高,毕竟能让别人花钱的东西是不一样的。下面就让我们使用 Qt 来调用百度 AI 车牌识 别的接口来做个例子吧

      车牌识别基本操作如下:

1、介绍百度车牌识别功能申请,及简单介绍调用流程。

2、用 Qt 编写示例程序。流程如下,将本地车牌照片(JPG),发送到百度车牌识别服务 器,然后由百度服务器返回车牌识别结果。

第二:车牌识别产品申请

     在浏览器输入“百度车牌识别”搜索,击进去。

      点击“技术文档”,其中您需要参阅下图的“技术文档”来查看使用手册。它里面会介绍 API 相关使用方法和领取免费的测试资源方法。

 我们只需要领取车牌识别功能资源,根据百度提供的“技术文档”可以知道,在文字识别》 购买指南》免费测试资源,可以看到未实名认证的用户免费领取车牌识别功能为 200 次/月,实 名认证是 1000 次/月。根据自己所需,勺情实名认证。在快速入门》新手操作指引处,我们在 领取资源页面找到车牌识别,勾选“车牌识别”,然后点 0 元领取即可。

       点击上图的文字识别控制台(蓝色字体)就可以看跳转到创建文字识别的应用了。如下图。 点击创建应用后。在文字识别应用列表中,默认会把文字识别的应用全部勾选了,如下图。接 着填上相关信息,完成创建即可。

创建完成后,查看应用的 API Key 和 Secret Key。因为下面的程序需要用到。

 第三:百度车牌识别API接口

      ocr 是笔者编写的车牌识别功能 demo,(ocr 原意光学字符识别即 Optical Character Recognition)。使用此程序需要修改自己应用的 client_id (API Key)和 client_secret( Secret Key)。

1 #ifndef OCR_H
2 #define OCR_H
3
4 #include <QNetworkAccessManager>
5 #include <QNetworkReply>
6
7 #include <QJsonDocument>
8 #include <QJsonParseError>
9 #include <QJsonObject>
10 #include <QJsonArray>
11 #include <QHostInfo>
12
13 #include <QFile>
14 #include <QImage>
15
16 class Ocr : public QObject
17 {
18 Q_OBJECT
19
20 public:
21 Ocr(QObject *parent = nullptr);
22 ~Ocr();
23
24 /* 请求网络 */
25 void requestNetwork(QString, QByteArray);
26
27 /* 获取识别结果 */
28 void getTheResult(QString fileName);
29 void getTheResult(QImage image);
30
31 private:
32 /* 存储获取 tokenUrl 地址 */
33 QString tokenUrl;
34
35 /* 存储 serverapi 地址 */
36 QString serverApiUrl;
37
38 /* 最终需要访问 token 的地址 */
39 QString accessToken;
40
41 /* 获取 token 的接口*/
42 const QString token_org =
"https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials
&client_id=%1&client_secret=%2&";
43
44 /* 填写网页上申请的 appkey 如 api_key ="g8eBUMSokVB1BHGmgxxxxxx" */
45 const QString api_key = "填写自己的 APP KEY";
46
47 /* 填写网页上申请的 APP SECRET 如
secret_key="94dc99566550d87f8fa8ece112xxxxx" */
48 const QString secret_key = "填写自己的 APP SECRET";
49
50 /* 百度服务器 API 接口,发送图片可返回识别结果 */
51 const QString server_api =
"https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate?access_token=%1
";
52
53 /* 网络管理 */
54 QNetworkAccessManager *networkAccessManager;
55
56 /* 处理 Json 数据 */
57 QString getJsonValue(QByteArray ba, QString key);
58
59 /* 处理 Json 数据 */
60 QString getJsonValue(QByteArray ba, QString key1, QString key2);
61
62 public slots:
63
64 /* 准备读取响应返回来的数据 */
65 void readyReadData();
66
67 /* 响应完成处理 */
68 void replyFinished();
69
70 /* 开始识别 */
71 void readyToDetection(QString);
72 void readyToDetection(QImage);
73
74 signals:
75 /* 识别到车牌,发送信号 */
76 void ocrReadyData(QString);
77
78 };
79 #endif // OCR_H

分析:第 45 行,请填写读者自己在网页上申请的 API Key。本例不提供开放的 API Key,请填写 自已个人申请的! 第 48 行,请填写读者在网页上申请的 Secret Key。本例不提供开放的 Secret Key,请填写 自已个人申请的! 其他地址由来在百度车牌识别的帮助文档,它已经解释的很详细,我们只要阅读它的帮助 文档可知,这里就不详细说了。发送要识别的图片到服务器,就可以返回识别的结果了。

第四:车牌识别综合测试

      1、ocr 文件夹为车牌识别的应用程序,主要发送本地图片到百度车牌识别服务器上,然后返 回识别结果。

      2、 Headers 文件夹为界面的头文件。

      3、 Sources 文件夹为界面的源文件。

  我们直接构建工程,注意:运行之前需要把项目下的 image 文件夹拷贝到可执行程序的同 级目录下。此 image 文件夹目录存放的是要识别的车牌图片,若想替换自己的图片,需要把要 识别的图片替换到 image 文件夹下的 carlpr.jpg,名字要相同。

 总结,我们使用了百度车牌识别的接口来完成这个车牌识别的过程,在这里我们虽然我们 不能学到车牌识别的算法,但是我们也学会了怎么根据百度 ai 的帮助文档去调用。并不是所有 的车牌识别算法都开源,毕竟也是别人的成果,别人的成果也是要付出的。此例程仅供参考使 用。实际用到项目上请购买相关的车牌识别产品。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/176184.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Scala快速入门

Scala简介 Scala是一门现代的多范式编程语言&#xff0c;平滑地集成了面向对象和函数式语言的特性。Scala运行于Java平台&#xff08;JVM&#xff0c;Java 虚拟机&#xff09;上&#xff0c;并兼容现有的Java程序&#xff0c;Scala代码可以调用Java方法&#xff0c;访问Java字…

ArcGIS Pro脚本工具(17)——生成多分式标注

​朋友们&#xff0c;你们知道ArcGIS里面分式标注的四种写法么&#xff1f; 放错图了&#xff0c;是这个 分式标注的四种形式我们可以把这类叫分式标注&#xff0c;网上也有博主分享过如何在ArcGIS中制作这类标注&#xff0c;但我觉得仍有一些不足。 一是基本都使用VB编写&…

中文问题相似度挑战赛

赛题概要 请本赛题排行榜前10位的队伍&#xff0c;通过作品说明提交源代码&#xff0c;模型以及说明文档&#xff0c;若文件过大&#xff0c;可发送至官网邮箱AICompetitioniflytek.com, 若截止时间内为提交&#xff0c;官方会通过电话联系相关选手&#xff0c;若未接到通知或…

WPF作图神器Interactive DataDisplay的初步使用

文章目录安装初步使用安装 Interactive DataDisplay是一款比较优秀的C#绘图控件&#xff0c;尽管与一些商业控件还有不小的差距&#xff0c;关键是开源免费轻量。 在VS中安装控件十分简单&#xff0c;本测试基于Net Core5.0&#xff0c;在VS的菜单栏->工具->NuGet包管理…

HomeLab 常用工具一:filebrowser

前言在实际使用过程中&#xff0c;我们通常都有基于WEB 的文件操作需求&#xff08;例如从一台陌生设备上想打开看一下&#xff0c;图片等&#xff09;&#xff0c;和nextcloud 相比 filebrowser 更为轻巧也更为方便。一、filebrowser 安装这里基于docker 安装和使用&#xff0…

Prometheus 动态拉取监控服务

Prometheus 版本 2.41.0 平台统一监控的介绍和调研直观感受PromQL及其数据类型PromQL之选择器和运算符PromQL之函数Prometheus 配置身份认证Prometheus 动态拉取监控服务 我们在以前的实例中配置Prometheus 的target 都是手动配置&#xff0c;这在监控目标少的情况下还可以接受…

【基础】BMP格式

BMP格式位图 (BMP)简介格式1.1图和调色板的概念1.2 bmp文件格式1.2.1 位图文件头 14字节1.2.2 位图信息头 40字节1.2.3 调色板1.2.4 注意位图 (BMP)简介 BMP取自位图Bitmap的缩写&#xff0c;也称为DIB&#xff08;与设备无关的位图&#xff09;&#xff0c;是一种独立于显示器…

【苹果家庭群发推】软件keychain中刚打开的证书下载的证书文件要决不会报错 UNTimeIntervalNotificationTrigge

推荐内容IMESSGAE相关 作者✈️IMEAX推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容3.日历推 *** …

linux入门---linux基本指令

目录标题云服务器选择云服务器购买xshell下载如何登陆云服务器Linux的新建与删除新建删除云服务器选择 学习linux的时候云服务器是一个非常重要的工具&#xff0c;那么我们在购买云服务器的时候有很多选择比如说&#xff1a;华为云&#xff0c;腾讯云&#xff0c;阿里云等等&a…

活动星投票网络文明公益广告网络评选微信的投票方式线上免费投票

“网络文明公益广告”网络评选投票_不记名投票小程序_投票帮手免费畅享_扫码投票微信小程序手机互联网给所有人都带来不同程度的便利&#xff0c;而微信已经成为国民的系统级别的应用。现在很多人都会在微信群或朋友圈里转发投票&#xff0c;对于运营及推广来说找一个合适的投票…

ROS2机器人编程简述humble-第三章-PERCEPTION AND ACTUATION MODELS .1

书中&#xff0c;第三章主题&#xff1a;First Behavior: Avoiding Obstacles with Finite States Machines本节旨在应用到现在为止所展示的一切来创建看似“聪明”的行为。这个练习将介绍的许多东西结合起来&#xff0c;并展示使用ROS2编程机器人的效率。此外&#xff0c;将解…

第五届字节跳动青训营 前端进阶学习笔记(八)React框架入门

文章目录前言React 的设计思路1.传统JavaScript更新UI的痛点2.我们对UI代码的需求3.组件&#xff08;1&#xff09;组件定义&#xff08;2&#xff09;组件设计&#xff08;3&#xff09;组件结构4.React的生命周期React的基本语法1.JSXReact的实现1.虚拟DOM2.响应数据的实现前…

Java面试题,Spring Bean的注册与依赖注入

Spring Bean的注册与依赖注入一、XML文件中&#xff0c;将Bean创建到Spring容器1. 基本类型注册2. 类装配3. 有参构造方法装配4. 扩展注入5. Bean的作用域6. Bean的其他配置二、配置类中&#xff0c;将Bean创建到Spring容器1. 在mapper、service、controller中创建&#xff0c;…

计网必会:HTPP详解(非常全面)、cookie、缓存

文章目录应用层协议Web和HTTPHTTP 概述采用非持续连接的HTTPRTT 往返时间的定义**三次握手过程**采用持续连接的HTTPHTTP到底采用哪个&#xff1f;HTTP 的报文格式请求报文功效格式响应报文状态码格式Cookie什么是cookieWeb缓存在学习的过程很多人都遇到了HTTP和Cookie&#xf…

卓有成效的五种用例设计方法

持续坚持原创输出&#xff0c;点击蓝字关注我吧用例设计作为测试工程师的立身之本&#xff0c;是衡量测试工程师综合素质的重要参考&#xff0c;时间是测试工作中重要的测试资源&#xff0c;通过设计高质量的测试用例可以有效地提升测试效率。本文旨在介绍测试工作中常用的五种…

SSO笔记

自己学习做的笔记.没有具体代码 单点登录:多系统,单一位置登录,实现多系统同时登录的一种技术. 也就是说多个应用系统中&#xff0c;用户只需要登录一次就可以访问所有相互信任的应用系统。 和三方登录Oauth2是有区别的.Oauth2属于三方登录.通常是某系统,使用其他系统的用户,…

【机器学习】多分类及多标签分类算法(含源代码)

目录&#xff1a;多分类及多标签分类算法一、单标签二分类问题1.1 单标签二分类算法原理二、单标签多分类问题2.1 ovo2.1.1 手写代码2.1.2 调用API2.2 ovr2.2.1 手写代码2.2.2 调用API2.3 OvO和OvR的区别2.4 Error Correcting三、多标签算法问题3.1 Problem Transformation Met…

Vue3 – Composition API(二)

1、computed函数使用 1.1、computed 在前面我们讲解过计算属性computed&#xff1a;当我们的某些属性是依赖其他状态时&#xff0c;我们可以使用计算属性来处理 在前面的Options API中&#xff0c;我们是使用computed选项来完成的&#xff1b;在Composition API中&#xff0c…

Shell语法

一、概念 Shell 是命令行与操作系统沟通的桥梁&#xff0c;也是一门语言。 Shell 脚本可以直接在命令行中执行&#xff0c;也可以作为文件方便复用。 Linux中常见的 Shell 脚本有&#xff1a; Bourne Shell(/usr/bin/sh或/bin/sh)Bourne Again Shell(/bin/bash)C Shell(/us…

《啊哈算法第四章之bfs》(17张图解)

源自《啊哈算法》 目录 bfs正文 题目 思路 完整代码1 完整代码2 再解炸弹人 题目 思路 完整代码1 完整代码2 总结 bfs正文 第四章--深度优先搜索中&#xff0c;我们用dfs找到了寻找小哈的最短路径 接下来&#xff0c;我们要用bfs&#xff08;Breadth First Sear…