置有纵向边缘,灰度有突变,边缘右侧的灰度值高于左侧灰度值。
数学形态学处理:对图像进行形态学闭运算,先膨胀运算,再腐蚀运算。通
过填充图像的凹角来滤波图像,能够填平小孔,弥合小裂缝,而总的位置和形状
不变。系统中膨胀和腐蚀运算分别用到的是 OpenCv 库中 dilate 函数和 erode 函
数。
(3)字符分割:通过计算势能实现字符的分割,一元势能包含了图像的形
状,纹理,颜色和位置。二元势能使用了对比度敏感的的双核势能,CRF 的二
元势函数一般是描述像素点与像素点之间的关系,鼓励相似像素分配相同的标签,
而相差较大的像素分配不同标签,而这个“距离”的定义与颜色值和实际相对距
离有关,这样 CRF 能够使字符尽量在边界处分割。
1.5 分类过程描述
使用的是 OpenCv 自带的机器学习框架 SVM 模型分别训练两个 SVM 模型,
用于识别车牌中文省份简称和后面的字母和数字。
训练过程:使用文件夹的名称作为标签,字母数字的标签为 chars2,汉字
字的标签为 charsChinese,文件中的图片作为数据。
使用 os.walk 方法,主要用来遍历一个目录内各个子目录和子文件。可以得
到一个三元组(root,dirs,files),root 所指的是当前正在遍历的这个文件夹的本
身的地址;dirs 是一个 list,内容是该文件夹中所有的目录的名字(不包括子目
录 ) ; files 同 样 是 list , 内 容 是 该 文 件 夹 中 所 有 的 文 件 ( 不 包 括 子 目 录 ) 。
os.path.basename(),返回 path 最后的名称,作为标签。cv2.imread(filepath) 读入
训练数据,标好了训练数据和标签,就可以赋给 SVM 分类器,最后将训练好的
模型保存到文件中,下次可以直接使用。
SVM 是一种二类分类模型,利用选定好的一种非线性映射关系,将向量投
影到一个维度较高的特征空间中,使之在高维空间呈现较好的区分性,并在该高
维空间中构造最优分类超平面,该超平面最终被用于拟合或者分类,而利用 SVM
进行分类与识别的数学模型,则可以利用超平面函数表达式进行描述:
(3)
其中w为法向量,b为分类面方程在y轴的截距,最大分类间隔为
,即
。