MATLAB--数字图像处理 车牌识别之分离字符

车牌识别之分离字符

前言
在进行车牌识别时(传统方法),首先是截去车牌区域,分离每个字符串,再利用模式匹配进行匹配字符,得到结果。

分离字符思路
这里利用的是车牌的蓝色特性,在图片中,只有车牌这里蓝色色域最多(作为入门算法,排除蓝色车系),所以利用RGB三通道进行处理,得到只有蓝色色域的图像,然后再二值化,利用闭运算把车牌合成一块白色区域,背景全部处理掉(以黑色显示),然后获得白色区域的位置坐标,矩形的长宽等数据,利用这些数据,对原图进行截图,任何对所截的图像进行二值化等处理,利用同样的方法,获得每个字符串的位置坐标,利用循环分别显示截取图像,并显示出来。

代码

Image = imread ('car2.jpg') ;
Image = imresize (Image, [300 450]) ; %调整图像的大小为300*450

gray = 2*Image (:, :, 3) - Image (:, :, 1) - Image (:, :, 2) ;
figure,imshow(gray),title('保留蓝色色域')

l = graythresh (gray) ; %利用Ostu法获取图像的阈值
bw = im2bw (gray, l) ; %根据Ostu法分割车牌图像
figure,imshow(bw),title('二值化后的图像')

bw1 = bwareaopen (bw, 500) ;%删除面积小于500的区域
figure,imshow (bw1) , title ('删除小面积区域后的图像') ;

se = strel ('cube', 15) ;%创建一个边长为15的正方形
bw2 = imclose (bw1, se) ;%闭运算连使整个车牌区域连接在一起
figure,imshow(bw2),title('进行闭运算后的车牌');

stats = regionprops (bw2, 'BoundingBox', 'Centroid') ; %获取车牌矩形区域, 即二值图中值为1的矩形框
bb = stats (1) .BoundingBox;%获取车牌矩形区域左上角坐标及矩形的长和宽, bb (1) 为矩形框左上角的y坐标, bb (2) 为矩形框左上角的x坐标
Img = Image (floor (bb (2) ) :floor (bb (2) +bb (4) ) ,floor (bb (1) ) :floor (bb (1) +bb (3) ) , :) ;
gray = Img (:, :, 2) ;%突出蓝色车牌的白色字体区域
figure,imshow (gray),title('切割图像 提取蓝色色域后')

l = graythresh (gray) ; %利用Ostu法获取阈值
bw3 = im2bw (gray, l) ; %转换为二值图像
figure,imshow (bw3),title('转换为二值图像')

se = strel ('line', 2, 90) ; %创建一个线条形状
bw4 = imclose (bw3, se) ;%闭运算, 连接各字符之间的缝隙
bw5 = imclearborder (bw4) ; %去除与边界相连的部分
bw6 = bwareaopen (bw5, 30) ; %删除面积小于50的区域
figure,imshow (bw6)

stats = regionprops (bw6, 'BoundingBox', 'Centroid') ; %获取各个字的矩形区域坐标
figure,imshow (Img)

for i = 1:length (stats)
bb = stats (i) .BoundingBox;
I = Img (floor (bb (2) ) :floor (bb (2) +bb (4) ) ,floor (bb (1) ) :floor (bb (1) +bb (3) ) , :) ;
str = ['第', num2str(i), '个字'];
figure,imshow (I) ;%展示每个字符
end

总结
该算法识别能力的确非常低,而且对原图像的要求很高,车辆颜色不能为蓝色、车牌必须正放在图像等要求。但是可以作为入门算法,了解车牌字符分离的简易算法。
实验图
MATLAB--数字图像处理 车牌识别之分离字符_第1张图片
结果图
MATLAB--数字图像处理 车牌识别之分离字符_第2张图片
MATLAB--数字图像处理 车牌识别之分离字符_第3张图片
MATLAB--数字图像处理 车牌识别之分离字符_第4张图片
MATLAB--数字图像处理 车牌识别之分离字符_第5张图片

你可能感兴趣的:(MATLAB--数字图像处理,MATLAB,数字图像处理,车牌识别,字符分离)