车牌识别源代码部份流程

车牌识别源代码部份流程

ID:10232082

大小:346.50 KB

页数:29页

时间:2018-06-12

车牌识别源代码部份流程_第1页
车牌识别源代码部份流程_第2页
车牌识别源代码部份流程_第3页
车牌识别源代码部份流程_第4页
车牌识别源代码部份流程_第5页
资源描述:

《车牌识别源代码部份流程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、车牌识别源代码部份流程(供参考一)2009年12月21日星期一09:11     实际上车牌识别代码量并不是很大,如果不停的手工输入;用不到一天的时间,即可大功告成。但是程序需要反复调试,才可以走向成熟。所以工作量是很大的。另外车牌识别还有其本身的特点——理论并不成熟。这就给车牌识别带来了更多的工作量。一般来说,开发车牌识别程序,先按照最原始最朴素的思想编码,然后是不断地优化。这将贯彻到整个车牌识别的开发过程中去。         车牌识别最基本的流程是:将采集后的图像二值化,然后依次经过车牌定位、字符分割、去除干扰,最后是字

2、符识别。有时还会加入本节前面部分所叙述的思想(比如回溯)。下面将分五章具体介绍每一个模块。一、二值化二值化是车牌识别的第一步。二值化前后的对比如下图:二值化的算法很简单,首先有一个亮度的阈值(threshold),对每一个像素的亮度和这个阈值做比较,根据比较结果得出车牌的前景和背景。用c/c++描述如下:voidCLPR::Binary(intthreshold){inty;for(y=0;y

3、ue;GetPixel(red,green,blue,x,y);intbright;bright=red+green;if(m_search_blue_plate){if(bright<=threshold)SetBinary(x,y,BACKGROUND);elseSetBinary(x,y,FOREGOUND);}else//wearesearchingyellowplate{if(bright>=threshold)SetBinary(x,y,FOREGOUND);elseSetBinary(x,y,BACKGROUND

4、);}}}}二值化算法虽然简单,但是阈值却不容易寻找。本章后面的部分,将重点介绍各种求解阈值的算法。1、OTSU算法OTSU算法的思想是:把输入图像首先转换成灰度图象,然后对图像进行直方图分析。如果直方图呈双峰分布。那么双峰之间的“谷”就是阈值。从统计学角度讲,阈值两边的距离最大。由于车牌识别的特殊性,图象象素点的亮度为该象素点的红色分量和绿色分量的和,并且忽略蓝色分量。这一点对蓝色车牌和黄色车牌都是适用的。OTSU算法仅对直方图呈双峰分布的图像有效。全部代码如下:voidLPR::OTSU(){//直方图统计{intinde

5、x;for(index=0;index

6、+){sum+=k*m_pixel_number[k];n+=m_pixel_number[k];}doublec_sum;c_sum=0.0;doublef_max;f_max=-1.0;intn1;n1=0;for(k=0;k<(m_bright_level_count-1);k++){n1+=m_pixel_number[k];if(n1==0)continue;intn2;n2=n-n1;if(n2==0)break;c_sum+=(double)k*m_pixel_number[k];doublem_1,m_2;m_

7、1=c_sum/n1;m_2=(sum-c_sum)/n2;doublesb;sb=(m_1-m_2)*(m_1-m_2)*(double)n1*(double)n2;if(f_max

8、。十分方便!代码如下:I=imread('blood1.tif');imhist(I);%人工观察灰度直方图,发现灰度120处有谷,确定阈值T=120I1=im2bw(I,120/255);%im2bw函数需要将灰度值转换到[0,1]范围内figure,imshow(I1);

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。