1、1516171819function split_img = my_imsplit( img )m, n = size(img);top = 1;bottom = m;left = 1;right = n;while sum(img(top, :) = 0 & top = 1 bottom = bottom -1;while sum(img(:, left) = 0 & left right = right - 1;width = right - left;height = bottom - top;split_img = imcrop(img, left top width height);
2、%定义图像分割函数%获取图像大小%参数赋值%获取图像顶部位置%获取图像底部位置%获取图像左边界%获取图像右边界%获取图像宽度%获取图像高度%切割图像结束利用MATLAB编写子程序函数getword,并储存于getword.m文件中。202122232425262728293031function word, result =getword( img ) word=;flag=0; y1=8; y2=0.5; while fla =0 m, n=size(img); width=0; while sum(img(:, width+1)=0 & width=n-2 width=width + 1;
3、 end temp= my_imsplit(imcrop(img, 1,1,width,m); m1, n1=size(temp); if width y2 img(:, 1, width)=0; if sum(sum(img)=0 img= y_imsplit(img); else flag=1; word=my_imsplit(imcrop(img, 1, 1, width, m);,1: width)=0; img=my_imsplit(img); img=; end result=img;%定义字符分割函数%判断flag是否等于0%获取字符大小%设置符号宽度为0%判断字符宽度%字符宽度
4、加1%判断结束%调用字符在切割函数%切割字符宽度%判断字符宽度是否不等于0%切割最小字符%否则%赋值%结束%调取字符再切割函数%切割字符%判断字符宽度是否等于0利用MATLAB编写车牌号码识别主程序。filename, filepath=uigetfile(.jpg, 输入要识别的图像);file=strcat(filepath, filename);img=imread(file);figure(1)imshow(img)title(原始图像)%输入原始图像%横向连接字符串%读取图像文件%设置图形窗口1%显示原始图像%原始图形标注读取车牌原始图像img1=rgb2gray(img);figu
5、re(2)subplot(1, 2, 1)imshow(img1)灰度图像subplot(1, 2, 2)imhist(img1)灰度图像直方图%img图像转为灰度图像%设置图形窗口2%设置图形位置%显示灰度图像%灰度图像标注%提取img1图像直方图信息%灰度图像直方图标注原始图像灰度变换img4=edge(img1, roberts, 0.15, bothfigure(3)imshow(img4)边缘检测后的图像% img1图像边缘检测%设置图形窗口3%显示边缘检测后的图像%边缘检测后的图像标注灰度图像边缘检测se=1;1;1;img5=imerode(img4, se);figure(4)
6、imshow(img5)腐蚀后的图像%设置se初值%img4图像腐蚀%设置图形窗口4%显示腐蚀后的图像%腐蚀后的图像标注图像腐蚀se=strel(rectangle, 30, 30);img6=imclose(img5, se);figure(5)imshow(img6)膨胀后的图像%计算se%img5图像膨胀%设置图形窗口5%显示膨胀后的图像%膨胀后的图像标注图像膨胀32img7=bwareaopen(img6, 2200);figure(6)imshow(img7)删除小面积后的图像%删除小于2200的图像%设置图形窗口6%显示删除小面积后的图形%删除小面积后的图形标注删除小面积对象333
7、435363738394041424344454647484950515253545556575859606162636465666768697071y, x, z=size(img7);img8=double(img7);blue_Y=zeros(y, 1);for i=1:y for j=1:x if(img8(i, j)=1) blue_Y(i, 1) = blue_Y(i, 1) + 1; img_Y1=1;while (blue_Y(img_Y1) 5) & (img_Y1 y) img_Y1=img_Y1 + 1;img_Y2=y;while (blue_Y(img_Y2) img
8、_Y1) img_Y2=img_Y2 - 1;blue_X=zeros(1, x);for j=1: for i=1: blue_X(1, j)=blue_X(1, j) + 1;img_X1=1;while (blue_X(1, img_X1) (img_X1 x) img_X1=img_X1 + 1;img_X2=x;while (blue_X(1, img_X2) img_X1) img_X2 = img_X2 - 1;img9=img(img_Y1:img_Y2, img_X1:img_X2, :figure(7)imshow(img9)定位切割后的车牌图像imwrite(img9,
9、车牌图像.jpg%获取img7图像大小%img7转成双精度浮点型%Y方向生成全零矩阵%变量i循环开始%变量j循环开始%判断车牌位置区域%像素点统计%变量j循环结束%变量i循环结束%设Y坐标最小值为1%判断Y方向值%增加坐标值%设Y坐标最大值为y%减小坐标值%X方向生成全零矩阵%设X坐标最小值为1%判断X方向值%设X坐标最大值为y%确定X、Y最小值和最大值%设置图形窗口7%显示定位后的车牌图像%定位后的车牌图像标注%保存定位切割后的车牌图像车牌定位切割727374757677787980plate_img=imread(plate_img1=rgb2gray(plate_img);figure(8)imshow(plate_img1)imhist(plate_img1)%读取定位切割后的车牌图像%转换成灰度图像%设置图形窗口8%提取灰度图像直方图信息定位切割后的车牌图像灰度处理8182838485868788plate_img2=histe
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1