二、汽车牌照定位与字符识别
待处理的图像如下所示。图像整体比较清晰干净,车牌方向端正,字体清楚,与周围颜色的反差较大。
要定位汽车牌照并识别其中的字符,我们采用Matlab平台提供的一些图像处理函数,以傅立叶变换通过字符模板与待处理的图像匹配为核心思想。基本方法如下:
1、读取待处理的图像,将其转化为二值图像。经试验,采用门限值为0.2附近时车牌字符最为清楚,杂点最少(如下左图)。
I = imread('car.jpg');
I2 = rgb2gray(I);
I4 = im2bw(I2, 0.2);
2、去除图像中面积过小的,可以肯定不是车牌的区域。
bw = bwareaopen(I4, 500);
3、为定位车牌,将白色区域膨胀,腐蚀去无关的小物件,包括车牌字符(如下右图)。
se = strel('disk',15);
bw = imclose(bw,se);
4、此时车牌所在白色连通域已清晰可见,但在黑色区域以外,是一个更大的白色连通域,将车牌所在连通域包围了。有必要将其填充。
bw = imfill(bw,[1 1]);
5、查找连通域边界。同时保留此图形,以备后面在它上面做标记。
[B,L] = bwboundaries(bw,4);
imshow(label2rgb(L, @jet, [.5 .5 .5]))
hold on
for k = 1:length(B)
boundary = B{k};