声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3228|回复: 3

[共享资源] 车牌分割matlab开发程序

[复制链接]
发表于 2006-10-24 16:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
来源于人民邮电出版社Visual C++/MATLAB 图像处理与识别实用案例精选,具体原理自己看书吧

  1. I=imread('Car.jpg');
  2. [y,x,z]=size(I);
  3. myI=double(I);
  4. %%%%%%%%%%% RGB to HSI %%%%%%%%
  5. tic % 测定算法执行的时间,开始计时

  6. %%%%%%%%%%% 统计分析 %%%%%%%%%%%%%%%
  7. %%%%%%%% Y 方向 %%%%%%%%%%
  8. Blue_y=zeros(y,1);
  9. for i=1:y
  10. for j=1:x
  11. if((myI(i,j,1)<=30)&&((myI(i,j,2)<=62)&&(myI(i,j,2)>=51))&&((myI(i,j,3)<=142)&&(myI(i,j,3)>=119)))
  12. % 蓝色RGB的灰度范围
  13. Blue_y(i,1)= Blue_y(i,1)+1; % 蓝色象素点统计
  14. end
  15. end
  16. end
  17. [temp MaxY]=max(Blue_y); % Y方向车牌区域确定
  18. PY1=MaxY;
  19. while ((Blue_y(PY1,1)>=5)&&(PY1>1))
  20. PY1=PY1-1;
  21. end
  22. PY2=MaxY;
  23. while ((Blue_y(PY2,1)>=5)&&(PY2<y))
  24. PY2=PY2+1;
  25. end
  26. IY=I(PY1:PY2,:,:);

  27. %%%%%%%% X 方向 %%%%%%%%%%
  28. Blue_x=zeros(1,x); % 进一步确定X方向的车牌区域
  29. for j=1:x
  30. for i=PY1:PY2
  31. if((myI(i,j,1)<=30)&&((myI(i,j,2)<=62)&&(myI(i,j,2)>=51))&&((myI(i,j,3)<=142)&&(myI(i,j,3)>=119)))
  32. Blue_x(1,j)= Blue_x(1,j)+1;
  33. end
  34. end
  35. end

  36. PX1=1;
  37. while ((Blue_x(1,PX1)<3)&&(PX1<x))
  38. PX1=PX1+1;
  39. end
  40. PX2=x;
  41. while ((Blue_x(1,PX2)<3)&&(PX2>PX1))
  42. PX2=PX2-1;
  43. end
  44. PX1=PX1-2; % 对车牌区域的修正
  45. PX2=PX2+2;

  46. Plate=I(PY1:PY2,PX1-2:PX2,:);
  47. t=toc % 读取计时
  48. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  49. figure,imshow(I);
  50. figure,plot(Blue_y);grid
  51. figure,plot(Blue_x);grid
  52. figure,imshow(IY);
  53. figure,imshow(Plate);

  54. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  55. %%文字识别子函数

  56. function [Numeral]=Recognition(StrokeTop,StrokeLeft,StrokeRight,StrokeBottom,Comp)
  57. % 采用四边的轮廓结构特征和笔划统计(仅针对 0 和 8)识别残缺数字
  58. % Comp 是用于识别 0和8 的底部补充信息
  59. StrT='T';
  60. StrL='T';
  61. StrR='T';
  62. StrB='T';
  63. RStr='T'; % 用于保存识别出的数字
  64. [temp XT]=size(StrokeTop);
  65. [temp XL]=size(StrokeLeft);
  66. [temp XR]=size(StrokeRight);
  67. %[temp XB]=size(StrokeBottom);

  68. for Ti=2:XT
  69. if (StrokeTop(Ti)=='C')
  70. if ((XL==2)&&(XR==2))
  71. if ((Comp>=3)||((StrokeBottom(2)~='C')&&(StrokeLeft(2)=='C')&&(StrokeRight(2)=='C')))
  72. RStr='8';
  73. else
  74. RStr='0';
  75. end

  76. else if ((StrokeLeft(XL)=='L')&&(StrokeLeft(XL-1)=='P')&&(StrokeLeft(2)~='C'))
  77. RStr='2';
  78. else if ((StrokeLeft(2)=='C')&&(XL>=3)&&(StrokeLeft(3)=='P'))
  79. RStr='9';
  80. else if (XL>2)
  81. for Li=2:XL
  82. if (StrokeLeft(Li)=='P')
  83. RStr='3';
  84. end
  85. end
  86. else if (XL==2)
  87. for Ri=2:XR-1
  88. if (StrokeRight(Ri)=='P')
  89. RStr='6';
  90. end
  91. end
  92. end
  93. end
  94. end
  95. end
  96. end
  97. else if (StrokeTop(Ti)=='V') % Top
  98. if ((XR==2)&&(StrokeRight(2)=='C')) % 数字 3 右端只有一个结构
  99. RStr='3';
  100. else if ((XR==2)&&((StrokeLeft(2)=='P')||(StrokeLeft(3)=='P')||(StrokeLeft(XL)=='V')))
  101. RStr='7';
  102. else if (XR>2)
  103. for Ri=2:XR
  104. if (StrokeRight(Ri)=='P')
  105. RStr='5';
  106. end
  107. end
  108. end
  109. end
  110. end
  111. else if ((StrokeTop(Ti)=='L')) % Top
  112. if ((StrokeRight(XR)=='V')&&(XR<=2))
  113. RStr='4';
  114. else
  115. for Ri=2:XR
  116. if ((StrokeRight(Ri)=='L')||(StrokeRight(Ri)=='C'))
  117. RStr='6';
  118. end
  119. end
  120. end
  121. end

  122. end %对应于'V'
  123. end % 对应于'C'
  124. end % 对应于第一个 for 循环
  125. Numeral=RStr; 来源研学论坛
  126. Matlab实现
  127. ① 装入待处理图象并显示原始图象,如①图所示:
  128. clear;
  129. close all;
  130. i=imread('原始图象');
  131. figure,imshow(i);
  132. ......
  133. Matlab程序:
  134. clear;
  135. close all;
  136. i=imread('原始图象');
  137. figure,imshow(i);
  138. %装入待处理图象并显示原始图象
  139. s=strel('disk',10);
  140. bg=imopen(i,s);
  141. figure,imshow(bg);
  142. %对‘原始图象’进行开操作得到图象背景
  143. bw=imsubtract(i,bg);
  144. figure,imshow(bw);
  145. %用原始图象与背景图象作减法
  146. %figure,imhist(i);
  147. %求图象直方图
  148. level=0.5;
  149. bw2=im2bw(bw,level);
  150. figure,imshow(bw2);
  151. %通过图象的直方图取得阈值,将图象二值化
复制代码

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2009-3-22 16:11 | 显示全部楼层
好的,学习中!
发表于 2009-4-25 11:22 | 显示全部楼层
:victory: ding ha
发表于 2009-4-25 11:53 | 显示全部楼层
个人看法:若能给齐Car.jpg此文件, 可能较容易学习!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 08:43 , Processed in 0.062925 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表