车牌识别系统 opencv

本文介绍了使用OpenCV进行车牌识别的图像预处理步骤,包括灰度化、均值滤波、Sobel边缘检测和二值化。通过大津法确定阈值,然后应用开闭操作找到车牌区域,最后使用OpenCV的轮廓查找函数来定位车牌。
摘要由CSDN通过智能技术生成

这个车牌识别系统(opencv定位,切割+BP神经网络识别字符)我已经在本科毕业的时候顺利完成了,相关的文档可以给大家一个链接~祝顺。http://wenku.baidu.com/view/0d69765dbed5b9f3f90f1cd5.html 
1.图像预处理
车牌识别系统的第一个步骤为图像预处理。简单的说,为了方便计算,减少计算量,我们通常将获取的图片灰度化。所谓灰度化就是让图片每个像素点在0-255之间。灰度化后图片可以方便我们操作而且不影响我们对车牌的操作。这里先说下,我们获取的照片因为光照的不同,或者车牌本身有污染等原因,会让我们的照片存在干扰信号。将图片傅里叶变换之后,这些干扰信后又通常为高频信号,所以我们需要做一个滤波器,将高频滤掉。对,就是一个低通。推荐使用均值滤波哈,方便我们后面的几个操作!

注意一下,这里的0代表的是强行将图片转化为灰度图,再读入内存。当然,你完全可以用另一个函数:
	cvCvtColor( SRC_PICTURE	, DES_PICTURE	, CV_BGR2GRAY );

       
	img0 = cvLoadImage( names2[i], 0 ); 
	

        if( !img0 )  
        {  
            printf("Couldn't load %s/n", names[i] );  
            continue;  
        } 

        img=cvCreateImage(cvSize(400,300),8,1);  
	imgsource=cvCreateImage(cvSize(400,300),8,1);  
        
	/*目标图片img*/
        cvResize(img0,img);  


        /*显示目标文件img*/
        cvNamedWindow("input",1);  
        cvShowImage("input",img);  

	/*均值滤波*/
        cvSmooth(img,img,CV_MEDIAN);  



到此为止,我们就做好了图片预处理50%啦!接下来的一个操作是将图片进行sobel变换。简单的说,sobel变化是一种边缘检测,它可以帮我们检测出一张图片的边缘。而它到底又是怎么样的原理呢?我帮大家推荐一篇文章,应该可以解决大家大部分的疑惑!点击打开链接而sobel在opencv里面对应的函数为:void cvSobel( const CvArr* src, CvArr* dst, int xorder, int yorder, int aperture_size=3 );根据大量的实验,观察,我们发现车牌是纵向纹理的,所以我们可以通过sobel函数将车牌的纹理提取出来!下面附一张效果图

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值