文献:
《复杂车辆图像中的车牌定位与字符分割方法》:
1.先搜索标记二值图像的所有连通域
2.根据连通域的形状和进邻连接等特征筛选,合并连通域。对于文档而言,连通域应该符合一定的高度,宽度以及相互间的比例。可以通过某种方法进行度量(根据文档特征),进行区域筛选合并。文中通过寻找波谷位置进行定位,接着以已有的车牌进行匹配。
《一种低质量车辆牌照的字符分割方法》
主流方法:基于投影+先验规则/滤波分析 无法分析倾斜,污损情况
连通区域分析 对字符粘连,断裂情况不佳
机器学习方法 HMM与上述两种方法结合
自适应形态学
文章方法:需要先验知识,和车牌的特征对车牌进行精确分割。特点:是两级的分割方法预分割和精细分割
实验:
用连通区域分析的方法对字符图像进行处理,首先二值化后,对图像开运算,去除细小的噪声,然后对图像中八领域方式连接的连通域进行标记,计算连通区域的框线特征,包括左上顶点坐标,长宽,依照这些数据对图像进行分割。除了i,j对字母的分割效果还是不错的。
源程序:
clear all;clc;close all;
[fn pn fi]=uigetfile('*.*','choose a picture');
Img=imread([pn fn]);
[~,~,c]=size(Img);
if c==1
f2= ~im2bw(Img,graythresh(Img));
else
Img=rgb2gray(imread([pn fn]));
f2= ~im2bw(Img,graythresh(Img));
end
f=f2;
f=bwareaopen(f,50);
% figure(3);imshow(f);
str=strel('square',2);
% f=imclose(f,str);
% str=strel('line',5,0);
f=imdilate(f,str);
figure(3);imshow(f);
[L,num] = bwlabel(f,8);%标注二进制图像中已连接的部分
Feastats = regionprops(L,'basic');%计算图像区域的特征尺寸
Area=[Feastats.Area];%区域面积
b=[Feastats.BoundingBox];%[x y width height]字符的大小
sub=cell(1,num);%存储分割后的图像
figure(1);
%===============分割过程==============%
for i=1:num
a=floor(b((i-1)*4+2));%b中字符的特性是按4个一组放的,前两个为左上顶点坐标,后两个为长宽。
if a==0
a=1;
end
e=b((i-1)*4+4);
d=floor(b((i-1)*4+1));
if d==0
d=1;
end
g=b((i-1)*4+3);
sub{1,i}=f2(a:a+e,d:d+g);
subplot(1,num,i);imshow(sub{1,i});
end
figure(2),imshow(f)
hold on
for k=1:num
[r,c]=find(L==k);
rbar=mean(r);
cbar=mean(c);
plot(cbar,rbar,'Marker','o','MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',10);
plot(cbar,rbar,'Marker','*','MarkerEdgecolor','w');
end
同的投影