项目二.docx

上传人:b****1 文档编号:3290103 上传时间:2023-05-05 格式:DOCX 页数:13 大小:145.70KB
下载 相关 举报
项目二.docx_第1页
第1页 / 共13页
项目二.docx_第2页
第2页 / 共13页
项目二.docx_第3页
第3页 / 共13页
项目二.docx_第4页
第4页 / 共13页
项目二.docx_第5页
第5页 / 共13页
项目二.docx_第6页
第6页 / 共13页
项目二.docx_第7页
第7页 / 共13页
项目二.docx_第8页
第8页 / 共13页
项目二.docx_第9页
第9页 / 共13页
项目二.docx_第10页
第10页 / 共13页
项目二.docx_第11页
第11页 / 共13页
项目二.docx_第12页
第12页 / 共13页
项目二.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

项目二.docx

《项目二.docx》由会员分享,可在线阅读,更多相关《项目二.docx(13页珍藏版)》请在冰点文库上搜索。

项目二.docx

项目二

题目二:

DSP在数字识别中的应用

-----车牌识别系统

(一)项目简介

(1)项目背景:

车牌识别(VehicleLicensePlateRecognition,VLPR)是现代智能交通系统中的重要组成部分之一,应用十分广泛。

它以数字图像处理、模式识别、计算机视觉等技术为基础,对摄像机所拍摄的车辆图像或者视频序列进行分析,得到每一辆汽车唯一的车牌号码,从而完成识别过程。

随着公路交通事业的迅速发展,人工管理方式已经不能满足实际的需要,微电子、通信和计算机技术在交通领域的应用极大地提高了交通管理效率。

汽车牌照的自动识别技术已经得到了广泛应用。

通过一些后续处理手段可以实现停车场收费管理,交通流量控制指标测量,车辆定位,汽车防盗,高速公路超速自动化监管等等功能。

对于维护交通安全和城市治安,防止交通堵塞,实现交通自动化管理有着现实的意义。

(2)项目设计基础:

DSP编程基础、数字信号处理知识、图像处理知识

(3)项目设计基本流程:

车牌识别基本的流程大致为:

将采集后的图像二值化,边缘提取,然后依次经过车牌定位、字符分割、字符识别等步骤。

(二)具体步骤及原理

(1)打开图像文件,读入车牌图像:

将之前准备好的图像luojie.bmp,在DSPCCS软件平台下,编程把图读取

到DSP的SDRAM中。

其中关键C语句为:

fi=fopen("E:

\\luojie.bmp","rb");

fread((char*)id,sizeof(char),54,fi);

for(i=0;i<16;i++)

{

fread((char*)id,sizeof(char),64,fi);

}

for(i=0;i

{

fread((char*)id,sizeof(char),128,fi);

for(j=0;j

{

y[i][j]=id[j];

}

}

fclose(fi);

(2)二值化:

对读入的图像进行二值化处理,

原理:

包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,最常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:

大于T的像素群和小于T的像素群。

这是研究灰度变换的最特殊的方法,称为图像的二值化(BINARIZATION)。

图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。

本项目二值化的关键C语句为:

i=0;

for(i=0;i

{

for(j=0;j

{

y[i][j]=255*((y[i][j])/200);

}

}

(3)投影:

利用投影法把二值化结果分别向水平和垂直方向投影,在x轴上显示每列白点像素和,y轴上显示每行白点像素和。

这样可以确定每个字符的上下左右边沿。

关键C语句包括:

//水平投影

for(i=0;i

{

for(j=0;j

{

if(y[i][j]>=200)

p[i]++;

}

}

//垂直投影

for(i=0;i

{

for(j=0;j

{

if(y[j][i]==255)

{p[i]++;}

}

}

(4)定位:

对目标位置进行定位,确定每个字符的上下左右边沿,选择合适的阈值定位出数字位置,并输出目标位置。

关键C语句包括:

 

//分别寻找七位符号的上边坐标存入边沿存入变量up,down中

m=IMAGE_HEIGTH/2;

temp=p[m];

for(i=m+1;i

{

if(temp>p[i])

{

temp=p[i];

down=i;

}

if(temp==0)

{down=i;

break;

}

}

temp=p[m];

for(i=m-1;i>=0;i--)

{

if(temp>p[i])

{

temp=p[i];

up=i;

}

if(temp==0)

{

up=i;

break;

}

}

//分别寻找七位符号的左边坐标存入数组p1[]中,右边坐标存入p2[]中;

for(i=0;i

{

if(p[i]>0)

{

if(flag==0)

{

p1[num]=i-1;

flag=1;

}

}

else

{

if(flag==1)

{

p2[num]=i;

flag=0;

num++;

}

}

if((flag==1)&&(i==IMAGE_WIDTH-1))

{

p1[num]=0;

p2[num]=0;

num++;

break;

}

}

//根据已得的每个字符的上下边沿坐标,左右边沿坐标画方框,标出文字;

for(i=0;i<7;i++)

{

for(k=up;k

{

y[k][p1[i]]=255;

y[k][p2[i]]=255;

}

}

for(i=0;i<7;i++)

{

for(j=p1[i];j

{

y[up][j]=255;

y[down][j]=255;

}

}

}

(三)项目结果

车牌图形如图

(1):

(1)车牌

利用DSP编译、调试、参数设置等过程如图

(2)、(3);

(2)编译、调试过程

图(3)参数设置

最后结果如图(4)、图(5):

图(4)最后结果

图(5)车牌图像的到识别

(四)结论

此次课程设计所用程序对图像规格要求较高,具有一定的局限性,应用范围也有限,有待提高,在此基础之上,以后我们还能够对程序进行修改,扩大适用范围。

这次课程设计是对之前所学相关知识的一次系统性的总结与应用,通过本次课程设计,我复习了数字信号处理的基本概念、基本理论和基本方法;掌握图像处理的常用算法、数字信号处理在数字识别中的应用及数字识别使用的基本算法;熟练了DSP的使用,掌握DSP的程序设计方法;学会用DSP对数字图像进行分析和处理。

大大提高了我的动手能力。

虽然这个设计做的并非对所以车牌都合适,但是在设计过程中所学到的学习方法是我最大收获和财富,相信定会使我受益终身。

(五)参考文献

[1]冈萨雷斯.数字图像处理(第二版).电子工业出版社,2007.8

[2]叶晨洲等,车辆牌照字符识别系统,计算机系统应用,1999(5),P10~13

[3]胡小锋、赵辉.VC++/MATLAB图像处理与识别使用案例精选.人民邮电出版社,2004.9

 

附:

完整程序:

#include"math.h"

#include"stdio.h"

#defineIMAGE_WIDTH128

#defineIMAGE_HEIGTH32

voidmain()

{FILE*fi;

inti,j,k;

inty[IMAGE_HEIGTH][IMAGE_WIDTH];

intp[128]={0},p1[128]={0},p2[128]={0},m,temp,up,down,num=0,

flag=0;

unsignedcharid[128];

//读入图像

fi=fopen("E:

\\lu.bmp","rb");

fread((char*)id,sizeof(char),54,fi);

for(i=0;i<16;i++)

{

fread((char*)id,sizeof(char),64,fi);

}

for(i=0;i

{

fread((char*)id,sizeof(char),128,fi);

for(j=0;j

{

y[i][j]=id[j];

}

}

fclose(fi);

//二值化

i=0;

for(i=0;i

{

for(j=0;j

{

y[i][j]=255*((y[i][j])/200);

}

}

//水平投影每行白点数相加

for(i=0;i

{

for(j=0;j

{

if(y[i][j]>=200)

p[i]++;

}

}

//从中间向上下边沿遍历,寻找上下边沿存入变量up,down中

m=IMAGE_HEIGTH/2;

temp=p[m];

for(i=m+1;i

{

if(temp>p[i])

{

temp=p[i];

down=i;

}

if(temp==0)

{down=i;

break;

}

}

temp=p[m];

for(i=m-1;i>=0;i--)

{

if(temp>p[i])

{

temp=p[i];

up=i;

}

if(temp==0)

{

up=i;

break;

}

}

//垂直投影,每列白点数之和存入数组p[]中

for(i=0;i

{

for(j=0;j

{

if(y[j][i]==255)

{p[i]++;}

}

}

//车牌是七位符号组成的,分别寻找七位符号的左边坐标存入数组p1[]中,右边坐标存入p2[]中;

for(i=0;i

{

if(p[i]>0)

{

if(flag==0)

{

p1[num]=i-1;

flag=1;

}

}

else

{

if(flag==1)

{

p2[num]=i;

flag=0;

num++;

}

}

if((flag==1)&&(i==IMAGE_WIDTH-1))

{

p1[num]=0;

p2[num]=0;

num++;

break;

}

}

//根据已得的每个字符的上下边沿坐标,左右边沿坐标画方框;

for(i=0;i<7;i++)

{

for(k=up;k

{

y[k][p1[i]]=255;

y[k][p2[i]]=255;

}

}

for(i=0;i<7;i++)

{

for(j=p1[i];j

{

y[up][j]=255;

y[down][j]=255;

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 司法考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2