车牌识别:

车牌识别的第二步主要是提取出车牌中的字符。对于每个被检测出的车牌,我们对车牌进行分割获取每个字符,然后用神经网络机器学习算法实现字符的识别。在这个过程中,我们也可以学习到如何评估一个分类算法。

OCR分割:

首先,我们将车牌图像作为具有直方图均衡化功能的OCR分割函数的输入。然后我们使用阈值滤波器处理,处理后的图像作为Find Contours算法的输入,我们可以通过下面的图片看一下此过程:

分割过程的代码如下:

我们使用CV_THRESH_BINARY_INV参数来反转阈值输出图像,将白色的输出值变黑,将黑色的变白。这需要得到每个字符的轮廓,因为轮廓算法找的是白色像素。

对于每个被检测到轮廓,我们可以做一个尺寸验证用来剔除所有尺寸较小或者宽和高比例不正确的轮廓。在我们的例子中,字母的宽高比例为45/77。我们可以允许因旋转或扭曲导致的35%以内的误差。如果一个区域的黑色像素占到80%以上,我们认为这个区域是个黑块,没有字符存在。对于某个区域的计数统计,我们可以使用countNonZero函数来对非零的像素点进行计数。

如果已经确定了分割的字符,我们需要对他们进行预处理,将所有的字符设置成相同的尺寸和位置,把它存放在辅助(auxiliary)的CharSegment类的一个向量当中。这个类保存着被分割字符图像和位置信息,需要存储位置信息主要是因为我们需要整理这些字符,因为寻找轮廓算法并不返回我们想要的有序的轮廓。

【OpenCV学习笔记】【教程翻译】五 (车牌识别之OCR分割)相关推荐

  1. OpenCV学习笔记(十五):图像仿射变换:warpAffine(),getRotationMatrix2D()

    OpenCV学习笔记(十五):图像仿射变换:warpAffine(),getRotationMatrix2D() 一个任意的仿射变换都能表示为乘以一个矩阵(线性变换)接着再加上一个向量(平移)的形式. ...

  2. OpenCV学习系列教程第五篇:测试和提高代码的效率

    Opencv-Python学习系列教程第五篇 来自opencv-python官方学习文档,本人谨做翻译和注释,以及一些自己的理解 本文由作者翻译并进行代码验证,转载请注明出处~ 官方文档请参阅:htt ...

  3. 【opencv学习笔记】2用摄像头识别指定颜色

    一般对颜色空间的图像进行有效处理都是在HSV空间进行的. 观察彩色物体时,我们用其色调.饱和度和明度来描述这个物体. 色调用角度度量,取值范围为0°-360°,从红色开始按逆时针方向计算,红色为0°, ...

  4. 【opencv学习笔记】第五篇:访问图像中像素的三种方式、ROI区域图像叠加和图像混合

    1. 访问图像中像素的三种方式 任何图像处理算法,都是从操作每个像素开始的.在OpenCV中,提供了三种访问每个像素的方法. 方法1:指针访问:C操作符[] 方法2:迭代器iterator 方法3:动 ...

  5. OpenCV实现车牌识别,OCR分割,ANN神经网络

    主要步骤: 准备车牌单个字符图像作为神经网络分类器的训练数据,越多越好.当然需要对每幅图像提取特征,这里使用的是水平和垂直累计直方图和缩小后的图像信息. 获取车牌图像,这里的车牌图像已经完成抠图,并且 ...

  6. OpenCV学习笔记(十一)(十二)(十三)(十四)(十五)

    OpenCV学习笔记(十一)--谈谈像素的类型和对Templates的限制使用 Templates是c++的一个很强大的特征,可以是数据结构更加安全高效.但也会增加编译时间和代码的长度,当函数被频繁调 ...

  7. 分水岭算法java,OpenCV 学习笔记 04 深度估计与分割——GrabCut算法与分水岭算法...

    1 使用普通摄像头进行深度估计 1.1 深度估计原理 这里会用到几何学中的极几何(Epipolar Geometry),它属于立体视觉(stereo vision)几何学,立体视觉是计算机视觉的一个分 ...

  8. opencv学习笔记五--文件扫描+OCR文字识别

    opencv学习笔记五--文件扫描+OCR文字识别 文件扫描 定义函数 边缘检测 获取轮廓 变换 OCR文字识别 环境配置 代码 文件扫描 # 导入工具包 import numpy as np imp ...

  9. OpenCV学习笔记(五十六)——InputArray和OutputArray的那些事core OpenCV学习笔记(五十七)——在同一窗口显示多幅图片 OpenCV学习笔记(五十八)——读《Mast

    OpenCV学习笔记(五十六)--InputArray和OutputArray的那些事core 看过OpenCV源代码的朋友,肯定都知道很多函数的接口都是InputArray或者OutputArray ...

  10. OpenCV学习笔记(五十一)——imge stitching图像拼接stitching OpenCV学习笔记(五十二)——号外:OpenCV 2.4.1 又出来了。。。。。 OpenCV学习笔记(五

    OpenCV学习笔记(五十一)--imge stitching图像拼接stitching stitching是OpenCV2.4.0一个新模块,功能是实现图像拼接,所有的相关函数都被封装在Stitch ...

最新文章

  1. linux命令总结之traceroute命令
  2. Bit-Z携手Bit-MY落户马来西亚 已获得经营牌照
  3. proxifier代理失败原因_上海财务代理
  4. eclipse中简单实现自己的工具类打包成jar包并在项目中使用
  5. 7、Cocos2dx 3.0游戏开发找小三之3.0版本号的代码风格
  6. linux获取连续数组下标值,shell 数组,双层循环打印变量
  7. 计算机主机箱外面有什么区别吗,电脑主机箱后面有三个插头空 都是干什么用的啊?...
  8. docker容器中安装jdk8,压缩包下载
  9. bzoj 1127 [POI2008]KUP——思路(悬线法)
  10. The Servers project is closed(Tomcate )
  11. 七夕节其实是最古老的异地恋
  12. 简易搭建ftp服务器
  13. 电脑自动关机是什么原因?为什么电脑会自动关机?轻松弄懂
  14. python牛顿迭代法求根例题_1.3求根之牛顿迭代法
  15. 处理火狐浏览器地址栏点击出现 百度/58同城/爱淘宝 链接
  16. 桌面支持--PLM软件必须右键用管理员账号打开
  17. 中国第一份OA系统用户实名口碑选型报告(选型宝重磅发布!)
  18. 日期格式yyyy-MM-dd和YYYY-MM-dd到底有什么不同
  19. 算法与算力在智能语音系统中的应用
  20. 客观分析Python前景,不捧不踩,另外送福利!

热门文章

  1. printf() 输出控制符
  2. MySQL VARCHAR的说明信息
  3. 16.了解如何把vector和string数据传给旧的API
  4. 15. Provide access to raw resources in resouce-managing classes
  5. 微服务学习之Hystrix图形化DashBoard监控【Hoxton.SR1版】
  6. ios transporter 缓存_鸿蒙和安卓都是开源,为什么iOS系统却可以获得出色的口碑?...
  7. 单端口和双端口的优势_哪种适合您,三种常见组网方式比较
  8. linux启动mysql_允许远程连接到MySQL数据库服务器的步骤
  9. (day 43 - 二分查找 ) 剑指 Offer 53 - II. 0~n-1中缺失的数字
  10. python自动化运维平台下载_5、python自动化运维——集中化管理平台Ansible