资源简介
matlab下对车牌图像进行二值化,灰度化,滤波,分割。可运行测试,供学习
代码片段和文件信息
I=imread(‘1.jpg‘);
figure(1)imshow(I);title(‘LC原图‘);
I1=rgb2gray(I); %将真彩色图像转换为灰度图像
figure(2)subplot(121)imshow(I1);title(‘LC灰度图‘);
figure(2)subplot(122)imhist(I1);title(‘LC灰度图直方图‘);
I2=edge(I1‘robert‘0.08‘both‘); %高斯滤波器方差为0.08
figure(3)imshow(I2);title(‘LCrobert算子边缘检测‘)
se=[1;1;1];
I3=imerode(I2se); %图像的腐蚀
figure(4)imshow(I3);title(‘LC腐蚀后图像‘);
se=strel(‘rectangle‘[4040]); %构造结构元素,以长方形构造一个se
I4=imclose(I3se); %对图像实现闭运算,闭运算也能平滑图像的轮廓,但与开运算相反,它一般融合窄的缺口和细长的弯口,去掉小洞,填补轮廓上的缝隙。
figure(5)imshow(I4);title(‘LC平滑图像的轮廓‘);
I5=bwareaopen(I42000); %从二进制图像中移除所有少于p像素的连接的组件(对象),产生另一个二进制图像
figure(6)imshow(I5);title(‘LC从对象中移除小对象‘);
[yxz]=size(I5);
myI=double(I5);
tic
Blue_y=zeros(y1);
for i=1:y
for j=1:x
if(myI(ij1)==1)
Blue_y(i1)= Blue_y(i1)+1;%蓝色像素点统计
end
end
end
[temp MaxY]=max(Blue_y);%Y方向车牌区域确定
PY1=MaxY;
while ((Blue_y(PY11)>=1)&&(PY1>1))
PY1=PY1-1;
end
PY2=MaxY;
while ((Blue_y(PY21)>=1)&&(PY2 PY2=PY2+1;
end
IY=I(PY1:PY2::);
%%%%%% X方向 %%%%%%%%%
Blue_x=zeros(1x);%进一步确定x方向的车牌区域
for j=1:x
for i=PY1:PY2
if(myI(ij1)==1)
Blue_x(1j)= Blue_x(1j)+1;
end
end
end
PX1=1;
while ((Blue_x(1PX1)<3)&&(PX1 PX1=PX1+1;
end
PX2=x;
while ((Blue_x(1PX2)<3)&&(PX2>PX1))
PX2=PX2-1;
end
PX1=PX1+30;%对车牌区域的校正
PX2=PX2-30;
PY1=PY1+30;
PY2=PY2-30;
dw=I(PY1:PY2-8PX1:PX2:);
t=toc;
figure(7)subplot(121)imshow(IY)title(‘LC行方向合理区域‘);
figure(7)subplot(122)imshow(dw)title(‘LC定位剪切后的彩色车牌图像‘)
imwrite(dw‘dw.jpg‘);
[filenamefilepath]=uigetfile(‘dw.jpg‘‘输入一个定位裁剪后的车牌图像‘);
jpg=strcat(filepathfilename);
a=imread(‘dw.jpg‘);
b=rgb2gray(a);
imwrite(b‘1.车牌灰度图像.jpg‘);
figure(8);subplot(321)imshow(b)title(‘1.LC车牌灰度图像‘)
g_max=double(max(max(b)));
g_min=double(min(min(b)));
T=round(g_max-(g_max-g_min)/2); % T为二值化的阈值
[mn]=size(b);
d=(double(b)>=T); % d:二值图像
imwrite(d‘2.车牌二值图像.jpg‘);
figure(8);subplot(322)imshow(d)title(‘2.LC车牌二值图像‘)
figure(8)subplot(323)imshow(d)title(‘3.LC均值滤波前‘)
% 滤波
h=fspecial(‘average‘3);
d=im2bw(round(filter2(hd)));
imwrite(d‘4.均值滤波后.jpg‘);
figure(8)subplot(324)imshow(d)title(‘4.LC均值滤波后‘)
% 某些图像进行操作
% 膨胀或腐蚀
% se=strel(‘square‘3); % 使用一个3X3的正方形结果元素对象对创建的图像进行膨胀
% ‘line‘/‘diamond‘/‘ball‘...
se=eye(2); % eye(n) returns the n-by-n identity matrix 单位矩阵
[mn]=size(d);
if bwarea(d)/m/n>=0.365
d=imerode(dse);
elseif bwarea(d)/m/n<=0.235
d=imdilate(dse);
end
imwrite(d‘LC5.膨胀或腐蚀处理后.jpg‘);
figure(8)subplot(325)imshow(d)title(‘5.LC膨胀或腐蚀处理后‘)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 318095 2014-05-03 18:53 imageseg_车牌\1.jpg
文件 6458 2014-11-24 16:23 imageseg_车牌\1.车牌灰度图像.jpg
文件 12824 2014-11-24 16:23 imageseg_车牌\2.车牌二值图像.jpg
文件 12810 2014-11-24 16:23 imageseg_车牌\4.均值滤波后.jpg
文件 8546 2014-11-24 16:23 imageseg_车牌\dw.jpg
文件 27036 2014-05-08 16:04 imageseg_车牌\figue3xiu.fig
文件 3094 2014-05-08 16:17 imageseg_车牌\img.m
文件 12810 2014-11-24 16:23 imageseg_车牌\LC5.膨胀或腐蚀处理后.jpg
文件 263224 2008-11-30 22:30 imageseg_车牌\Lena.bmp
文件 27046 2014-05-08 16:20 imageseg_车牌\unti
文件 3072 2014-05-08 15:56 imageseg_车牌\Unti
文件 19968 2014-11-24 16:55 imageseg_车牌\新建 Microsoft Word 文档.doc
目录 0 2014-11-24 16:55 imageseg_车牌
----------- --------- ---------- ----- ----
714983 13
- 上一篇:多相滤波数字信道化MATLAB源码
- 下一篇:《数字信号处理matlab版》代码
相关资源
- 基于meanshift的彩色图像分割算法源代
- meanshift原理图像分割matlab程序
- matlab程序实现了目标对象的图像分割
- 图像的区域生长分割matlab程序
- MATLAB中图像分割迭代法求阈值
- 改进的蜂群算法图像分割MATLAB代码
- MATLAB实现种子生长法进行图像分割
- 图像分割分水岭算法
- matlab 图像分割
- 基于matlab的数字图像分割技术研究及
- 基于Matlab的主动轮廓分割资料.txt
- Matlab图像分割法
- graphcut用于图像分割的matlab代码
- otsu图像分割的matlab代码
- 采用半隐式方案实现变分水平集图像
- 基于matlab的医学脑部分割
- 基于图像分割的区域提取
- matlab交互式图像分割源程序
- 图像分割 直方图阈值双峰法的matlab实
- 超大tif图像分割为100等份
- 基于Graphcut的图像分割(Matlab)
- 基于FCM的图像分割 MATLAB 实现
- 基于遗传神经网络的图像分割MATLAB源
- 灰度图像的二维Otsu自动阈值分割法
- 匹配跟踪算法(matlab)
- 利用遗传算法进行图像分割(matlab源
- 图像分割MATLAB胸部CT肺质提取.rar
- 基于MATLAB的车牌图像分割技术
- 基于混合高斯模型的图像分割方法
- mo_2_3.m3. 图像分割matlab实现源代码
评论
共有 条评论