opencv车牌识别<一>

目录

一、概述  

二、ANPR简介


一、概述  

        本文将介绍创建自动车牌识别(Automatic Number Plate Recognition,ANPR)所需的步骤。对于不同的情形,实现自动车牌识别会用不同的方法和技术,例如,IR 摄像机、固定汽车位置、光照条件等。本章着手构造一个用来检测汽车车牌 ANPR 的应用,该应用处理的图像是从汽车 2~3 米处拍摄的,拍摄环境的光昏暗模糊,并且与地面不平行、车牌在图像中有轻微的扭曲。本文的主要目标是介绍图像分割、特征提取、模式识别基础以及两个重要的模式识别算法:支持向量机(Support Vector Machine,SVM)和人工神经网络(Artificial NeuralNetwork,ANN)、本章的主要内容

  1. ANPR
  2. 车牌检测
  3. 车牌识别

二、ANPR简介

   自动车牌识别(Automatic Number Plate Recognition,ANPR)也称自动牌照识别(AutomaticLicense-Plate Recognition,ALPR)、自动车辆识别(Automatic Vehicle Identifcation,AVI)、洗车车牌识别(Car Plate Recognition,CPR),它是一种使用光学字符识别(Optical CharacterRecognition,OCR)和其他方法(如,用图像分割与检测)来获取车辆牌照的监控方法。对于一个ANPR系统,其最好结果可用一个红外(IR)摄像机来获得数据,因为在分割这一步中,对检测和 OCR 分割很简单、干净,并且误差最小。这是由光学的一些基本原理决定的,例如人射角等于反射角,当人看到光滑表面(如,平面镜)时就会有这样的反映。粗糙表面(例如,纸)的反射会导致漫射或散射。多数车牌有一个称为回射(retro-reflection)的特性,车牌表面覆盖着一种材料,它由许多微小半球颗粒构成,会导致光线沿路反射回去,可从下图看到这种反射效果。

       如果使用结合了结构性红外光学投影器的摄像机,就可只获取红外光,这样就能得到很高品质的图像,对这种图像进行分割,然后检测和识别车牌。这种情形下的车牌独立于任意光照环境,如下图所示。

       本文并不会使用 IR 图像,而是使用普通图像。这样做并不会得到最好的结果,与使用红外摄像机相比,这种做法会得到较高的检测错误和错误识别率,但这两种方法的步骤一样。

        每个国家都有不同的车牌尺寸和规格,了解这些规格对得到最好结果并减少错误很有用。本章所使用的算法是为了解释车牌识别的基础知识,其规范来自西班牙车牌,但可适用于任意国家或规范。

        本章将使用西班牙车牌。在西班牙,有不同大小和形状的车牌。本章采用最普通(大)的车牌,它的大小为520mmx110mm。两组字符由41mm 的空间分离,每个字符间的距离为14mm。第一组字符为四个数字,第二组有三个字母,但不包括元音字母 A、E、I、O、U也不包括字母或Q,所有字符的大小为45mmx77mm。

       这些数据对字符分割很重要,因为可用这些数据来检查字符和空格,以验证得到的是个字符而不是其他由图像分割得到的对象。下图就是一个这样的车牌。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/C++轻量级并发TCP服务器框架Zinx-框架开发001: 读取标准输入,回显到标准输出

文章目录 完整代码实现参考-非项目使用项目使用的代码 - 乱-但是思路与上面的相同创建Kernel类添加删除修改epoll&#xff0c;才能写run方法创建stdin_Channel类在Kernel类中实现run方法 完整代码实现参考-非项目使用 #include <errno.h> #include <signal.h> #in…

Leetcode—122.买卖股票的最佳时机II【中等】

2023每日刷题&#xff08;二十八&#xff09; Leetcode—122.买卖股票的最佳时机II 实现代码 int maxProfit(int* prices, int pricesSize) {int totalProfit 0;if(pricesSize < 1) {return 0;}for(int i 1; i < pricesSize; i) {if(prices[i] - prices[i - 1] > …

The 8th China Open Source Conference Successfully Concludes

由开源社主办的第八届中国开源年会&#xff08;COSCon23&#xff09;于 2023年10月29日在成都圆满收官。本次大会&#xff0c;为期两天&#xff0c;线下参会报名逾千人次&#xff0c;在线直播观看人数总计 168610 人&#xff0c;直播观看次数达 248725 次&#xff0c;官网累计浏…

使用VScode编译betaflight固件--基于windows平台

使用VScode编译betaflight固件--基于windows平台 1、使用git克隆betaflight的开源代码2、betaflight的代码框架分析&#xff1a;3、配置编译环境&#xff1a;4、VScode上编译 betaflight不仅可以在LInux上进行编译也可以在Windows上编译&#xff0c;本文主要介绍在windows平台上…

建设大型综合运维平台,对接集成多厂商网管系统

当前&#xff0c;云计算、大数据、人工智能等IT技术迅猛发展&#xff0c;企业的信息化步入了一个崭新的时代&#xff0c;企业规模不断壮大&#xff0c;业务不断拓展&#xff0c;企业信息化依赖的网络结构和IT技术越来越复杂。因建设时期等原因&#xff0c;企业网络中分布着不同…

实现线程的多种方式锁的介绍ThreadLocal线程池 详细总结(下)

本文主要介绍线程池的基本使用 上述其他介绍在上一篇文章中&#xff1a;实现线程的多种方式&锁的介绍&ThreadLocal&线程池 详细总结&#xff08;上&#xff09;-CSDN博客 线程池 5.1、为什么使用线程池 线程池可以看做是管理了 N 个线程的池子&#xff0c;和连…

asp.net实验管理系统VS开发sqlserver数据库web结构c#编程web网页设计

一、源码特点 asp.net 实验管理系统 是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语言开发。 asp.net实验管理系统1 应用技术&am…

Control的Invoke和BeginInvoke

近日&#xff0c;被Control的Invoke和BeginInvoke搞的头大&#xff0c;就查了些相关的资料&#xff0c;整理如下。感谢这篇文章对我的理解Invoke和BeginInvoke的真正含义 。 (一&#xff09;Control的Invoke和BeginInvoke 我们要基于以下认识&#xff1a; &#xff08;1&#x…

【Java】线程的调度、生命周期及状态转换

&#x1f33a;个人主页&#xff1a;Dawn黎明开始 &#x1f380;系列专栏&#xff1a;Java ⭐每日一句&#xff1a;夜色难免黑凉&#xff0c;前行必有曙光 &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️ ​ 文章目录 一.&…

冲击900亿美元估值!邀约路演、秘密交表的Shein上市有望

双十一的狂欢刚刚结束&#xff0c;Shein即将赴美上市的消息又在电商圈里投下一枚重磅炸弹。 继被媒体曝光其寻求900亿美金估值后&#xff0c;最新的消息称其已邀请投资人参与路演&#xff0c;且已秘密完成交表。这个神秘的中国独角兽&#xff0c;离敲钟登陆美股的日子越来越近…

如何实现Redisson分布式锁

首先&#xff0c;不要将分布式锁想的太复杂&#xff0c;如果我们只是平时业务中去使用&#xff0c;其实不算难&#xff0c;但是很多人写的文章不能让人快速上手&#xff0c;接下来&#xff0c;一起看下Redisson分布式锁的快速实现 Redisson 是一个在 Redis 的基础上实现的 Java…

Mozilla 面向基于 Debian 的 Linux 发行版

导读Mozilla 公司今天发布新闻稿&#xff0c;表示面向 Debian、Ubuntu 和 Linux Mint 等基于 Debian 的发行版&#xff0c;推出了.deb 格式的 Firefox Nightly 浏览器安装包&#xff0c;便于用户在上述发行版中更轻松地安装。 本次更新的亮点之一在于采用 APT 存储库&#xff0…