基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx

上传人:b****6 文档编号:8621136 上传时间:2023-05-12 格式:DOCX 页数:38 大小:938.39KB
下载 相关 举报
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第1页
第1页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第2页
第2页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第3页
第3页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第4页
第4页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第5页
第5页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第6页
第6页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第7页
第7页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第8页
第8页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第9页
第9页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第10页
第10页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第11页
第11页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第12页
第12页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第13页
第13页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第14页
第14页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第15页
第15页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第16页
第16页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第17页
第17页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第18页
第18页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第19页
第19页 / 共38页
基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx

《基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx(38页珍藏版)》请在冰点文库上搜索。

基于VC与Opencv的路标识别系统开发设计Word文档下载推荐.docx

成绩评定表

学号:

班级:

类别

合计

分值

各项分值

评分标准

实际得分

合计得分

备注

平时表现

10

按时参加综合设计,无旷课、迟到、早退、违反实验室纪律等情况。

完成情况

30

20

按设计任务书的要求完成了全部任务,能完整演示其设计内容,符合要求。

能对其设计内容进行详细、完整的介绍,并能就指导教师提出的问题进行正确的回答。

报告质量

35

报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理;

报告字数符合相关要求,工整规范,整齐划一。

5

课题背景介绍清楚,综述分析充分。

设计方案合理、可行,论证严谨,逻辑性强,具有说服力。

符号统一;

图表完备、符合规范要求。

能对整个设计过程进行全面的总结,得出有价值的结论或结果。

参考文献数量在3篇以上,格式符合要求,在正文中正确引用。

答辩情况

25

在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。

15

在规定时间内能准确、完整、流利地回答教师所提出的问题。

总评成绩:

补充说明:

指导教师:

(签字)

日期:

年月日

答辩记录表

班级:

答辩地点:

答辩内容记录:

 

答辩成绩

答辩小组成员(签字):

指导教师评语

指导教师:

一、综合设计目的、条件、任务和内容要求:

设计目的:

重点培养学生对智能系统的认识,使学生在掌握图像处理基本原理的基础上,进行方法设计和实现编程的能力培养;

培养学生综合运用多门课程知识的能力;

培养学生自学能力及自主查阅资料的能力。

培养学生在智能应用方面的创新设计能力和实际动手能力,以及计算机编程实现的综合应用能力。

条件:

VC++6.0,OpenCV

任务:

设计开发一个路标识别系统。

内容要求:

用MFC建立一个单文档程序,实现图像打开显示,保存,在对打开的路标数字图像进行滤波,边缘提取,阈值分割,轮廓提取等预处理后,提取有效特征,进行路标识别,得到正确的识别结果。

指导教师签字:

年月日

二、进度安排:

2012-11-26查阅资料

2012-11-27—2012-11-30掌握OpenCV的使用方法

2012-11-30—2012-12-06设计实现图像处理系统

2012-12-07答辩

三、应收集资料及主要参考文献:

[1]张基温.C++程序设计基础[M].高等教育出版社.

[2]侯俊杰.深入浅出MFC[M].华中科技大学出版社.

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

[4]于仕琪译.学习OpenCV(中文版)[M].清华大学出版社.

[5]刘瑞祯,于仕琪.OpenCV教程——基础篇[M].北京航空航天大学出版社.

四、综合设计(课程设计)摘要(中文):

随着我国经济的快速发展,汽车得到广泛的普及,针对事故频发的现象,有必要对智能交通技术进行研究,以方便司机出行,减少事故的发生。

路标自动检测与识别作为智能交通技术的一个重要组成部分,得到越来越广泛的重视,本文利用Opencv对图像处理进行了研究,设计了一个路标识别系统。

以图像打开、保存、几何变换、形态学处理、阈值分割、边缘检测和滤波等基本操作为基础,对路标数字图片进行处理检测,提取有效特征,采用K最近邻算法识别,获得了较高的准确率。

关键词:

OpenCV;

路标识别;

K最近邻算法

五、综合设计(课程设计)Abstract(英文):

WithChina'

srapideconomicdevelopment,theautomotivewidelyspread,tosolvethephenomenonoffrequentaccidents,itisnecessarytoconductresearchonintelligenttransportationtechnologiestofacilitatethetravelofdriversandtoreduceaccidents.Thesignpostautomaticdetectionandrecognitiongetsmoreandmoreattentionasanimportantpartofintelligenttransportationtechnology.DesigningasignpostrecognitionsystembyresearchingtheImageprocessingwithOpencv.Processingthesignpostdigitalimagesandextracttheeffectivefeaturesbasedonimageopeningandsaving,imagetransformation,morphologicalprocessing,segmentationthreshold,edgeextraction,filtering.Usingthek-nearestneighboralgorithmtorecognizethesignpost.Theexperimentaldatashowthatthismethodhasahighaccuracy.

Keywords:

Opencv;

SignposRecognition;

K-nearestneighboralgorithm

摘要

随着我国经济的快速发展,汽车得到广泛的普及,针对事故频发的现象,有必要对智能交通技术进行研究,以方便司机出行,减少事故的发生。

Abstract

WithChina'

第一章绪论

1.1课题背景

在改革开放这30年中,我国城市交通取得有目共睹的成就,人们生活水平有了明显的提高,汽车数量显著增多,据公安部门统计,至2009年底我国汽车保有量已经达到7619.31万辆,汽车在给人们出行带来方便的同时,也给城市交通带来明显的压力。

在这样的背景下,我国城市智能交通渐渐的被提上议事日程。

智能交通系统研究主要包括三个方面的任务:

(1)异常事故识别;

(2)行车道路识别;

(3)交通标志识别。

其中道路识别和事故识别的研究已经取得较好的效果,但是针对交通标志牌识别方面的研究相对较少。

相比于欧美国家,我国起步较晚,但是发展较快,具有很大的发展潜力,已有多所大学和研究所开展类似方面的研究,其中,清华大学、国防科技大学等高校的研究走在前列。

在智能交通系统中,交通标志牌的检测与识别是其重要组成部分,它包括三个方面研究内容:

(1)交通标志的快速检测系统;

(2)交通标志的特征提取系统;

(3)交通标志的识别系统。

本文研究目的是设计出一个交通标志牌的快速检测与识别系统,该系统能够在复杂的自然环境下,快速、准确、高效的实现交通标志牌的检测与识别功能,减少道路交通事故发生。

需要指出的是,目前国内还没有研究出一个能够在实际中广泛使用的系统。

因此,依据我国道路交通的现实情况,有必要研究设计出一个快速准确的检测识别道路交通标志牌的系统,以方便司机出行,缓解城市交通压力,减少事故的发生率。

1.2国外研究现状

在八十年代初期,日本学者最先开展类似智能交通系统方面的研究,从而引起国际上学者们的注意,开始这方面的尝试性研究,特别是在欧美掀起这方面研究热潮。

在这种背景下,智能交通系统ITS(IntelligentTransportationSystem)应运而生,ITS系统涉及到很多学科知识,包括图像,通信,计算机视觉,自动化,嵌入式等等,它对社会的发展产生积极的推动作用。

已经在很多方面得到重要的应用,包括机场、高速公路智能调度系统,城市交通智能调度系统,运营车辆调度管理系统,车站客流疏导系统,机动车自动控制系统等。

其中日本、美国和欧洲一些国家的研究取得了令人瞩目的成就,如日本的道路交通信息通信系统VICS(VehicleInformationCommunicationSystem)发展到现在已经相当完善和成熟,美国政府所倡导研究的智能车辆道路管理系统等等,各国研究智能交通系统的目的就是方便司机出行,缓解道路交通压力,减少道路交通事故的发生。

这些方面研究对驾驶员的安全出行有积极的作用,它能帮助驾驶员提前决定行车路线,以及行车策略。

我国开展这方面的研究起步较晚,但是近年来,也取得了较大的成就。

交通标志牌检测与识别主要包括以下三个方面的内容:

(1)图像预处理

(2)交通标志检测

(3)以及交通标志分类识别

1.3开发工具简介

1.3.1OpenCV

OpenCV是一个很优秀的开源图像处理算法库,它包含了一系列C函数和少量C++类,实现了图像处理和计算机视觉方面的很多通用算法。

OpenCV具有的特征为:

(1)开源计算机视觉库采用C/C++编写;

(2)使用目的是开发实时应用程序;

(3)独立于操作系统、硬件和图形管理器;

(4)具有通用的图像/视频载入、保存和获取模块;

(5)具有底层和高层的应用开发包。

OpenCV具有的功能为:

(1)对图像数据的操作,包括分配、释放、复制、设置和转换数据;

(2)对图像和视频的输入输出;

(3)具有对矩阵和向量的操作以及线性代数的算法程序;

(4)可对各种动态数据结构进行操作;

(5)具有基本的数字图像处理能力;

(6)可对各种结构进行分析;

(7)对摄像头的定标;

(8)对运动的分析;

(9)对目标的识别;

(10)具有基本的GUI功能。

1.3.2VC6.0

VC++是在Windows平台下构建32位应用程序的强大而又复杂的开发工具,是目前世界上使用最多的开发工具之一,应用非常广泛。

VC++6集成开发环境中集成了编辑器、编译器、连接器以及调试程序,覆盖了的开发应用程序的整个过程,程序员无需脱离这个开发环境就可以开发出完整的应用程序。

VC集成开发环境功能强大,不仅提供了大量的向导(Wizard),还有完备的帮助功能(MSDN)。

VC++还具有很多优点,主要体现在封装性、继承性和多态性。

封装性把数据与操作数据的函数组织在一起,不仅使程序结构更加禁揍,并且提高了类内部数据的安全性;

继承性增加了软件的可扩充性及代码重用性;

多态性使设计人员在设计程序时可以对问题进行更好的抽象,有利于代码的维护和可重用。

鉴于VC++以上优点,我们在设计过程中采用VC++的开发平台。

第二章设计简介及设计方案论述

2.1系统的需求分析

路标识别系统最终任务是用来识别左转、右转等标志图片。

由于交通标志牌受到内在破损,污染等因素和外在被树木遮挡等客观条件的共同作用,并且标志牌在获取过程中难免会引入随机噪声,所以对图像进行预处理是必要的。

如图像分割、几何变换、噪音消除等,图像预处理的目的是为了消除退化因素和随机噪声对原始图像的影响,然后才能依据训练得到的数字特征进行识别。

系统要实现功能应该如下:

1、图像的打开显示和保存:

实现打开图像和保存图像的功能。

2、图像变换:

实现图形的放大、缩小和旋转的功能。

3、图像信息操作:

实现图像灰度化、画出图像的直方图以及进行直方图的均衡化处理。

4、边缘提取:

运用Sobel算子、Laplace算子、Canny算子这三种算子进行边缘检测。

5、阈值分割:

实现图像的固定阈值和自适应阈值对图像进行分割。

6、滤波:

实现图像的中值滤波和高斯滤波。

7、形态学处理:

实现图像的腐蚀和膨胀操作。

8、路标识别:

实现路标特征训练,能准确的识别任意路标图片。

系统流程图如下图所示:

图2.1路标识别流程图

2.2本文的研究方面

本文研究的是自然场景下交通标志牌的检测与识别,它是通过安装在车辆上的摄像机来获取室外的交通标志,将所获取的交通标志图像送入计算机,通过计算机来完成交通标志的快速检测与识别。

所有的交通标志牌都处于自然场景下,所受到的干扰较多,主要有以下几个方面:

(1)光照影响。

由于晴天、雨天、雾天,还有雪天等等不同的自然环境下,图像所获得的光照条件是不同的,因此拍摄获得的交通标志牌的图像质量参差不齐;

(2)噪声影响。

在图像获取过程中噪声在所难免,克服噪声是交通标志牌检测与识别的重要部分;

(3)交通标志牌形状,大小的不确定性。

由于标志牌是通过安装在汽车上的摄像机拍摄获取的,所获得的标志牌的形状、大小在不同条件下会有明显不同,这给标志牌的检测与识别增加了难度;

(4)运动模糊。

交通标志牌在获取过程中,难免会受到汽车的抖动,以及相机与景物之间相对运动的影响,产生运动模糊,从而影响图片质量;

(5)标志牌的遮挡、破损。

由于交通标志长期暴露在自然条件下,因此所拍摄到的图像,难免存在损毁、缺省现象,而且交通标志牌都是安放在道路两侧,近年来受到绿化加强影响,交通标志牌常常受到树木以及其他障碍物的遮挡。

在以上复杂的自然状况下,如何快速检测与识别交通标志牌,是本课题研究的重点与难点。

为了克服以上不利条件影响,本文主要从以下几个方面进行研究:

(1)为了克服噪声和运动模糊对图像检测的影响,本文在实验中分析了几种滤波算法后,采用中值滤波方法来消除随机噪声;

(2)为了克服光照对交通标志分割的影响,同时提高算法的实时性,本文在RGB颜色空间下,采用计算三基色之间的相对值来克服光照影响,实现标志牌的分割,然后在得到的二值图像中结合交通标志的形状特征,实现交通标志的定位。

(3)为了克服交通标志牌的形状变化影响识别效果,本文采用旋转方式对检测到的交通标志牌提取特征向量,组成特征库,然后采用图像匹配技术和K最近邻算法实现交通标志分类识别。

第三章详细设计

3.1图像的打开显示和保存

图像的打开比较简单,主要用到了OnOpenDocument()函数,通过该函数传入的lpszPathName参数,就可以打开选中的图片。

m_pImage=cvLoadImage(lpszPathName,1);

上面这句代码就是调用opencv里的LoadImage函数,将选中的图片载入到IplImage型变量m_pImage中,后面就可以调用opencv的各种函数对m_pImage进行操作了。

图像的显示代码主要在视图类的OnDraw函数中,这样每次窗口的重绘都会调用该函数从而将经过处理的图像实时地显示出来。

图像的保存也比较简单,只需要在MFCView类中定义图片格式,调用保存对话框,选择路径后将图片数据传入Doc类的Doc->

Save(strFileName,pDoc->

m_image.GetImage())函数中,在此函数中调用opencv里的函数CvSaveImage()即可。

下面就是保存图像的核心代码:

cvSaveImage(lpszPathName,m_pImage);

该函数就可以将图像m_pImage保存在指定的路径lpszPathName中。

其中lpszPathName是通过打开文件时自动获得的该文件的所在的路径。

所使用的函数如表3-1:

表3-1图像显示保存主要函数函数说明

BOOLCDDDoc:

:

OnOpenDocument(LPCTSTRlpszPathName)

打开图片函数。

lpszPathName表示选择的路径。

voidCDDView:

OnFileSaveAs()

View响应消息,函数图像文件保存。

Save(LPCTSTRcsFileName,IplImage*pImg)

csFileName为保存文件的名字pImg为图像数据地址,调用cvSaveImage(csFileName,pImg)保存。

3.2图像变换

图像的几何变化研究图像的放大、缩小以及旋转的功能。

缩放是使图像按比例因子放大或缩小的变换。

变比计算公式为:

X1=X*Sx;

Y1=Y*Sy。

按公式变比时,不仅对象的大小变化,且对象离原点的距离也发生了变化,如果只希望变换对象的大小,而不希望变比对角离原点的距离,则可采用固定点变比。

图像旋转是以某个参考点为圆心,将对象上的个点(X,Y)围绕圆心转动一个逆时针角度,变为新的坐标(X1,Y1)的变换。

要用到几个函数:

cvResize、cvCopy。

函数列表3-2:

表3-2图像几何变换主要函数说明

Tuxiangsuofang()

功能函数,由响应函数调用,接受对话框数值,实现图像的放大缩小功能。

cvCreateImage(CvSizesize,intdepth,intchannels);

创建头并分配数据,size图像宽高,depth图像元素的位深度,channels每元素通道数。

cvResize(constCvArr*src,CvArr*dst,intinterpolationCV_DEFAULT(CV_INTER_LINEAR))

调整图像src,使它精确匹配目标dst。

src源图像dst,目标图像,interpolation修改、插补的方法。

cvCopy(constCvArr*src,CvArr*dst,

constCvArr*maskCV_DEFAULT(NULL))

拷贝一个数组给另一个数组。

src输入数组,dst输出数组,mask操作掩码是8比特单通道的数组,它指定了输出数组中被改变的元素。

函数cvResize中interpolation为插值方法,包括最近邻插值、双线性插值、立方插值等,函数cvResize将图像src改变尺寸得到与dst同样大小,原理为图像放大时有的地方像素不变,有的地方缺少颜色值,于是函数在缺少的地方依照差值方法自动补上颜色信息,缩小时删除一定像素值,使得图像在缩小或者放大后尽量和源图像保持颜色信息一致。

函数cvCopy的语法为:

voidcvCopy(constCvArr*src,CvArr*dst,constCvArr*mask=NULL),其中src为输入数组,dst为输出数组,mask为在、操作掩码是8比特单通道的数组,它指定了输出数组中被改变的元素,函数cvCopy从输入数组中复制选定的成分到输出数组,如果输入数组中的一个是IplImage类型的话,其ROI和COI将被使用,输入输出数组必须是同样的类型、维数和大小,该函数也可以用来复制散列数组。

但需要注意的是,复制的两个数组其维数必须相同,不然会出现未知错误,比如彩色图像与灰度图像相互复制时,其通道不相同,要先转化才能使用。

创建一个新图可以使用cvCreateImage()函数,其作用创建头并分配数据,nchannels为通道数,彩色图像为3,灰度与二值图像通道为一。

图像的放大、缩小、旋转效果如下:

(a)原图

(b)图像顺时针旋转90度(c)宽度增大一倍,长度缩小一倍

图3.1图像的缩小、放大、旋

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

当前位置:首页 > 解决方案 > 学习计划

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

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