EasyPR是一个中文的开源车牌识别系统,其车牌识别划分为了两个过程:即车牌检测(Plate Detection)和字符识别(Chars Recognition)两个过程:

车牌检测(Plate Detection):对一个包含车牌的图像进行分析,最终截取出只包含车牌的一个图块;

字符识别(Chars Recognition):从上一个车牌检测步骤中获取到的车牌图像,进行光学字符识别(OCR)这个过程

效果:

如果还没有搭环境,可参考

Ubuntu+Qt下配置车牌识别系统EasyPR1.6环境_logani的博客-CSDN博客

1.在线程中循环捕获视频帧,发送到窗口进行显示

2.CPlateRecognize进行初始化

识别车牌和颜色,最多可同时识别4个

3.从帧图片中获取车牌信息CPlate存入容器中

如果为0,就是获取到

4.获取容器第一个车牌转成Mat进行显示

第一次转换是将二值化、灰度化后的单通道转成三通道,
第二次转换才是将Mat的BGR转换成RGB

5.获取车牌的文字信息,转换成QString到linneEdit进行显示

源码

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);pvideothread=new videothread("carinput.mp4");connect(pvideothread,SIGNAL(sendFrame(Mat)),this,SLOT(receiveFrame(Mat)),Qt::BlockingQueuedConnection);//接收每一帧Mat//初始化pr.setDetectType(PR_DETECT_CMSER|PR_DETECT_COLOR);//识别车牌和颜色pr.setMaxPlates(4);pr.setResultShow(false);}Widget::~Widget()
{delete ui;
}void Widget::receiveFrame(Mat frame)
{this->frame=frame.clone();//克隆一个做显示和检测车牌cvtColor(this->frame, this->frame, CV_BGR2RGB);this->img1 = QImage(this->frame.data,this->frame.cols,this->frame.rows,QImage::Format_RGB888);this->img1 = this->img1.scaled(ui->label_2->width(),ui->label_2->height());update();
}void Widget::on_pushButton_clicked()//播放
{pvideothread->start();}void Widget::on_pushButton_2_clicked()
{Mat carNum;int res=pr.plateRecognize(this->frame,plateVec);if(res==0){plate=plateVec.at(0);//获取CPlateplateMat=plate.getPlateMat();//转换成Mat//第一次转换是将二值化、灰度化后的单通道转成三通道cvtColor(plateMat, carNum, CV_BGR2RGB);//第二次转换才是将Mat的BGR转换成RGBcvtColor(carNum, carNum, CV_BGR2RGB);QImage img(carNum.data,carNum.cols,carNum.rows,QImage::Format_RGB888);ui->label->setPixmap(QPixmap::fromImage(img));ui->label->setScaledContents(true);//铺满控件String str=plateVec[0].getPlateStr();ui->lineEdit->clear();ui->lineEdit->setText(QString(str.c_str()));}plateVec.clear();//清空容器}
void Widget::paintEvent(QPaintEvent *e)
{ui->label_2->setPixmap(QPixmap::fromImage(this->img1));
}

头文件

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <easypr.h>
#include "videothread.h"
using namespace easypr;
namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = nullptr);~Widget();void paintEvent(QPaintEvent *e);
public slots:void receiveFrame(Mat frame);
private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();private:Ui::Widget *ui;Mat frame;CPlateRecognize pr;vector<CPlate> plateVec;CPlate plate;Mat plateMat;videothread *pvideothread;QImage img1;
};#endif // WIDGET_H

感谢观看!!!!

以上就是全部内容,如果对您有帮助,欢迎点赞评论,或者发现有哪里写错的,欢迎指正!

【OpenCV+Qt】使用车牌识别系统EasyPR识别车牌号相关推荐

  1. Python OpenCV Tesseract实现车牌的检测与识别

    python+opencv+TESSERT-OCR实现车牌的检测与识别_啥都不会的小王的博客-CSDN博客python+opencv+TESSERT-OCR实现车牌的检测与识别开学花了十天时间0基础搞 ...

  2. python ocr 识别车牌_python+opencv+TESSERT-OCR实现车牌的检测与识别

    python+opencv+TESSERT-OCR实现车牌的检测与识别 开学花了十天时间0基础搞出来的,分享给大家,如果有什么错误希望大家给我指正.python师从小甲鱼,opencv师从贾志刚,B站 ...

  3. Coding-Party 基于飞桨的农作物智能识别系统病虫害识别

    目录 Coding-Party 基于飞桨的农作物智能识别系统 病虫害识别 Coding-Party 基于飞桨的农作物智能识别系统 联合国粮食及农业组织最近的一份报告表明,每年农业生产的自然损失中有三分 ...

  4. Python | 人脸识别系统 — 人脸识别

    博客汇总:Python | 人脸识别系统 - 博客索引 GitHub地址:Su-Face-Recognition 注:阅读本博客前请先参考 工具安装.环境配置:Python | 人脸识别系统 - 简介 ...

  5. 腾讯OCR识别图片(身份证、车牌号、名片、驾驶证、营业执照、银行卡、车牌号、人脸等)

    [原文:https://blog.csdn.net/liguoqingxjxcc/article/details/82224670] 开始 腾讯OCR可以做什么? 可以鉴黄.识别身份证.名片.驾驶证. ...

  6. java 正则车牌_Android中手机号、车牌号正则表达式大全

    手机号 手机名称有GSM:表示只支持中国联通或者中国移动2G号段(130.131.132.134.135.136.137.138.139.145.147.150.151.152.155.156.157 ...

  7. Linux系统下,智能中文车牌识别系统EasyPR的配置

    1.将EasyPR_v1.6放置于/opt目录下,使用unzip命令进行解压.得到EasyPR文件夹 unzip EasyPR_v1.6.zip 2.使用chmod -R命令将该文件夹递归更改文件权限 ...

  8. 如何开发一个车牌识别,车牌识别系统,车辆识别系统毕业设计毕设作品

    开发准备 第1步:准备好百度智能云的账号 第2步:在百度智能云领取对应AI开发的免费资源包 第3步:创建对应的应用,然后获取对应的开发信息,主要是下面几个 AppID:应用列表中 API Key:应用 ...

  9. 使用gpu服务器搭建人脸识别系统,人脸识别gpu服务器配置

    人脸识别gpu服务器配置 内容精选 换一换 设置动态Batch档位参数,适用于执行推理时,每次处理图片数量不固定的场景.在某些推理场景,如检测出人脸后再执行人脸识别网络,由于人脸个数不固定导致人脸识别 ...

最新文章

  1. 易生信高级转录组分析和数据可视化-最后一天报名
  2. 机房线路老化了会有怎么样的影响?又该如何处理?
  3. 【NLP】可交互的 Attention 可视化工具!我的Transformer可解释性有救了?
  4. 【强化学习】一文带你理清强化学习
  5. .Net Core3 新特性整理
  6. 通过SQL Server 2008 访问Oracle 10g
  7. 百度Java工程师面试资源
  8. 微信号也有加人涨粉规则和限制?
  9. html5手机常亮,vue开发的webapp中的手机物理返回键,以及屏幕常亮处理
  10. 【perl】LWP module
  11. OSGi.NET 学习笔记 [模块化和插件化][概念]
  12. Hadoop架构中各个集群在开发中的作用
  13. Java类与对象——几个课堂例子的总结及作业
  14. mysql_query is deprecated_Function mysql_db_query() is deprecated 错误解决
  15. RayData大数据可视化教程(1)——软件使用和材质渲染基础
  16. 5G无线关键技术 — 低时延高可靠物联网设计
  17. Creator 开发微信小游戏-好友排行榜
  18. 脑机接口技术使瘫痪病人重获运动能力,4D打印技术已经到来!|技术前沿洞察...
  19. RTX3080和RTX2080TI 哪个好
  20. 虚拟机扩容、删除多余分区分配到C盘

热门文章

  1. java 异常 不抛_java中的不抛出的异常是什么
  2. 证书及证书管理(keytool工具实例)
  3. django的优缺点
  4. unity从服务器下载资源并且保存到本地
  5. 详解以太网诊断DoIP
  6. Python生成随机试卷及答案
  7. T1064 奥运奖牌计数(信息学一本通C++)
  8. nekohtml中解析中出现中文乱码问题
  9. 互联网化的年代程序员追女孩
  10. P2392 kkksc03考前临时抱佛脚