"设计模式"的思想

liagl 2003-01-17 11:16:35
看过"设计模式"之后我就在想,这么多的模式都是怎么设计出来的,它们的产生都是什么思想的指导。不过我对哲学不感兴趣,但是我对方法论感兴趣,后来看了一个资料描述了两种软件设计的思想。
一种是抽象,把复杂的东西(关系、活动等)都抽象成对象或接口,设计模式就是例子。一种是分解,又分纵向分解(分层思想,现在流行三层结构)和横向分解(维)。
我仔细想了一下,好象现在软件的设计确实都在这两种思想的指导之下,可惜资料太少没能深入研究,希望能抛砖引玉。
...全文
70 10 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
DavidBone 2003-04-20
up
  • 打赏
  • 举报
回复
arya 2003-01-23
我认为,在软件结构上可以逻辑地分为三层:应用逻辑层,实现逻辑,和执行逻辑。应用逻辑就是用户应用领域的逻辑,天马行空,各种各样的逻辑都可能有;执行逻辑对应机器语言级别的行为,是最低级的面向机器的逻辑;实现逻辑介于两者之间,上承应用逻辑,下辖执行逻辑,实现两者之间的结合。事实上,这样的结合永远都不可能是完美的,总有取舍权衡。怎么取舍,怎么在两种逻辑之间找到合适的结合点实现这样的结合,是一门艺术。一旦决定如何结合以后,怎么正确有效地实现结合,是科学。
  • 打赏
  • 举报
回复
jeffyan77 2003-01-22
拔出萝卜带出泥,引出一个有趣的问题:软件设计到底是艺术还是科学?呵呵
  • 打赏
  • 举报
回复
simon_xu115 2003-01-22
其实软件设计就是艺术创造,像绘画,建筑,雕刻
所谓设计模式就是在实际的工作中总结出的方法。
  • 打赏
  • 举报
回复
jeffyan77 2003-01-21
有的时候,看一看设计模式的最早发起人是怎么想的,还是有一些指导意义的。

http://www.webendshere.com/javapatterns/faq/faq.html#tech3
  • 打赏
  • 举报
回复
computerboy111 2003-01-21
提供一个稳定的抽象层,对扩展开,对修改闭(OCP)是模式论的总原则
  • 打赏
  • 举报
回复
arya 2003-01-20
软件设计就是一个对问题建模的过程。这个过程不仅是个数学问题,更加是一个认识论问题,是你如何划分实体,以最小的(划分)代价获得最大的模型利益,所谓模型利益,不仅包含用户的功能实现,还包括程序的灵活性。这里的问题在于当需求高度变化的时候,建立起来的模型可以保持划分基本不变,只改变逻辑链接,或者整体基本不变,只加入少量新实体。建议学习Patterns+XP.
  • 打赏
  • 举报
回复
liagl 2003-01-20
不知道大家对软件的设计还有什么心得.
  • 打赏
  • 举报
回复
arya 2003-01-17
我不认为模式是设计出来,我认为它是总结出来的。是从大量重复性的经典性的解决方案中提炼出来的结果。我认为你说的抽象和分解有一定的道理,但是我认为可能这两种方法都是立足于功能之间的相对静止/运动关系上的。抽象是一种捕获相对静止性的手段,而分解则是按照运动的切向来定义实体界面。在分解以后进行抽象。
一切都起源于运动。所谓运动,就是变化,需求的变化,系统运行中各个实体的变化,都是运动的定义来源。
  • 打赏
  • 举报
回复
cpunion 2003-01-17
其实我们平常编程经常用到,只是没有归纳成这些模式罢了,书的作者在有些细节地方比我们处理的好很多,有些模式以前看到过类似代码,还感觉不太好,现在通看全书,理解深了,也就明白了,很自然就能应用上。
  • 打赏
  • 举报
回复
相关推荐
软件工程学将计算机科学理论与现代工程方法论相结合,着重研究软件过程模型、分析与设计方法、软件工程开发与管理技术和工具,是指导软件生产和管理的一门新兴的、综合性的应用科学。《软件工程方法与实践》分别从传统的结构化开发范型和面向对象开发范型两个方面,把软件工程的概念和理论知识融入到实践当中,通过丰富的案例分析与设计,更深入地理解软件开发中各个阶段的技术、方法和管理过程。《软件工程方法与实践》包括软件工程与过程、软件需求分析与建模、软件设计、软件测试与维护和软件工程管理五个部分,共16章,深入介绍了软件开发“工程化”思想。 《软件工程方法与实践》适合作为高等院校软件工程课程的教材,即适用于计算机专业的学生,也适用于其他非计算机专业从事软件开发与应用及管理的专业学生和技术人员学习的教材。《软件工程方法与实践》还可以成为从事软件开发人员必备的参考书。 《软件工程方法与实践》将软件工程原理和实践分析相结合,以案例项目为主线贯穿全书,介绍了软件工程涉及的概念。原理和方法,按照软件工程阶段要求建立系统模型,包括分析。设计、测试、管理等。在每个阶段安排能够体现该阶段原理和思想的案例,全面介绍软件工程的要点,使学生能够深入理解软件工程的原理。方法和技术并充分认识开发过程和迭代工作的重要性,同时进一步了解企业软件工程运用的规范和要求,为日后工作中出色完成项目任务和迭代任务打下坚实的基础。 《软件工程方法与实践》特点 ·坚持基本理论适度,强调工程实践和应用环节,把软件工程的概念和理论知识融入实践之中。 ·以”案例”为驱动,以实践教学为基础,提供5个典型案例支持,不同的案例介绍和分析层次充分体现技术的适用性和方法的实用性。 ·注重教学资源的配套,为任课教师配有电子教案。 ·配套教材《软件工程实验教程》,引导学生学习软件生命周期各阶段所用到的CASE工具,包括软件文档标准与规范。软件分析与设计、软件测试和软件项目管理四个部分,共设计了15个实验,培养学生实践创新能力和专业技能。 编辑推荐 《软件工程方法与实践》:分别从结构化开发范型和面向对象开发范型角度循序渐进介绍软件开发过程相关的原理、方法和技术。 理论知识和案例分析相结合,以5个典型案例项目贯穿全书。 目录 前言 教学建议 第一部分 软件工程与过程 第1章 概述2 1.1 软件工程的基本概念2 1.1.1 软件的角色和特性2 1.1.2 软件演化3 1.1.3 软件神化和危机4 1.1.4 软件危机的解决途径4 1.2 工程化思想5 1.2.1 工程化所涉及的范围5 1.2.2 工程化管理思想5 1.3 软件工程两大范型5 1.4 软件工程思想与基本原理6 1.4.1 软件工程基本原理7 1.4.2 软件工程思想7 1.5 软件工程活动9 1.5.1 软件开发活动9 1.5.2 软件项目管理活动9 1.5.3 软件过程改进活动10 1.6 小结10习题10 第2章 软件过程11 2.1 软件过程概述11 2.1.1 过程方法与工具11 2.1.2 软件过程框架12 2.1.3 软件过程模型12 2.2 软件生命周期12 2.3 能力成熟度模型集成13 2.4 敏捷过程16 2.4.1 什么是敏捷过程17 2.4.2 极限编程18 2.4.3 自适应软件开发20 2.4.4 动态系统开发21 2.4.5 特征驱动开发21 2.5 软件工程实践22 2.5.1 概念22 2.5.2 沟通实践23 2.5.3 计划实践23 2.6 小结24习题24 第3章 软件过程模型25 3.1 瀑布模型25 3.2 增量模型26 3.2.1 增量构造模型27 3.2.2 演化提交模型27 3.3 螺旋模型27 3.4 协同开发模型28 3.5 面向对象过程模型29 3.5.1 面向对象概念29 3.5.2 统一过程模型30 3.5.3 组件集成模型33 3.6 面向方面的软件开发34 3.7 小结36习题36第4章 案例研究37 4.1 案例研究中涵盖的内容37 4.2 案例1:出卷系统37 4.3 案例2:短信系统37 4.4 案例3:POS机系统38 4.5 案例4:ATM机系统38 4.6 案例5:图书馆系统38 4.7 小结38习题38 第二部分 软件需求分析与建模 第5章 软件需求分析过程40 5.1 什么是软件需求40 5.1.1 功能需求40 5.1.2 非功能需求40 5.1.3 领域需求41 5.2 需求分析过程43 5.2.1 初步沟通43 5.2.2 导出需求43 5.2.3 分析和精化44 5.2.4 可行性研究44 5.2.5 协商与沟通44 5.2.6 规格说明44 5.2.7 需求验证46 5.2.8 需求变更管理46 5.3 启动分析过程46 5.3.1 确认利益相关者46 5.3.2 识别视点47 5.3.3 协同工作47 5.3.4 首次提问47 5.4 非形式化需求分析技术47 5.4.1 会谈47 5.4.2 调查表49 5.4.3 场景分析49 5.5 案例分析49 5.5.1 出卷系统49 5.5.2 POS机系统50 5.5.3 图书馆系统50 5.5.4 短信系统51 5.5.5 ATM机系统51 5.6 小结51习题52 第6章 结构化分析建模53 6.1 分析模型概述53 6.1.1 分析模型元素53 6.1.2 分析模式54 6.1.3 目标与原理54 6.2 结构化需求分析54 6.2.1 结构化分析方法55 6.2.2 结构化分析模型55 6.3 面向数据的建模方法56 6.3.1 实体56 6.3.2 属性56 6.3.3 关系57 6.3.4 基数57 6.3.5 案例分析57 6.4 面向数据流的建模58 6.4.1 数据流图58 6.4.2 数据字典60 6.4.3 状态转换图61 6.4.4 加工逻辑的描述61 6.5 案例分析64 6.5.1 出卷系统64 6.5.2 图书馆系统66 6.5.3 POS机系统68 6.5.4 短信系统69 6.6 小结71习题71 第7章 面向对象分析73 7.1 面向对象建模73 7.1.1 面向对象模型73 7.1.2 统一建模语言(UML)75 7.2 用例建模76 7.2.1 编写用例76 7.2.2 开发活动图81 7.2.3 泳道图82 7.3 建立领域模型82 7.3.1 识别分析类83 7.3.2 用例实现分析84 7.3.3 关联与依赖86 7.3.4 识别属性和操作86 7.4 行为建模87 7.4.1 系统顺序图87 7.4.2 操作契约88 7.4.3 顺序图与协作图89 7.4.4 状态图90 7.5 案例分析90 7.5.1 POS机系统91 7.5.2 ATM机系统92 7.5.3 短信系统96 7.6 小结98习题98 第三部分 软件设计与建模 第8章 软件设计100 8.1 软件设计概述100 8.1.1 软件设计过程和设计质量100 8.1.2 概要设计说明书101 8.1.3 详细设计说明书102 8.2 软件模块化设计103 8.2.1 软件模块化103 8.2.2 抽象104 8.2.3 体系结构104 8.2.4 信息隐蔽104 8.2.5 模块独立性105 8.2.6 逐步求精106 8.2.7 重构106 8.3 软件结构106 8.3.1 软件结构图106 8.3.2 模块化设计的优化107 8.4 软件系统结构模型108 8.4.1 系统构成模型108 8.4.2 系统控制模型110 8.5 体系结构模式111 8.6 小结111习题111 第9章 结构化设计方法..1 13 9.1 结构化设计方法概述113 9.1.1 概要设计113 9.1.2 详细设计113 9.2 数据流类型114 9.2.1 变换型数据流114 9.2.2 事务型数据流114 9.2.3 混合型数据流114 9.3 数据流设计方法115 9.3.1 数据流映射步骤115 9.3.2 变换流设计115 9.3.3 事务流设计116 9.3.4 综合分层的数据流设计117 9.4 面向数据的设计118 9.4.1 Jackson图118 9.4.2 JSD方法设计步骤118 9.4.3 JSD举例分析119 9.5 结构化程序设计方法121 9.5.1 基本概念121 9.5.2 结构化程序设计工具122 9.6 案例分析126 9.6.1 出卷系统126 9.6.2 图书馆系统129 9.7 小结131习题131 第10章 面向对象设计134 10.1 面向对象设计过程134 10.1.1 系统模型描述134 10.1.2 逻辑架构和包图134 10.1.3 对象识别135 10.1.4 设计模型135 10.1.5 对象接口描述137 10.2 构件级设计137 10.2.1 构件类137 10.2.2 构件级设计步骤138 10.2.3 基于类的构件设计原则139 10.3 设计模式140 10.3.1 设计模式概述140 10.3.2 基于职责的设计140 10.4 面向对象详细设计144 10.4.1 领域模型精化144 10.4.2 逻辑架构精化147 10.4.3 包设计149 10.4.4 精化的交互图150 10.4.5 精化的类图152 10.4.6 持久性设计154 10.4.7 部署图与构件图156 10.5 案例分析157 10.5.1 POS机系统157 10.5.2 短信系统158 10.5.3 ATM机系统159 10.6 小结163习题164 第11章 软件实现165 11.1 编码语言165 11.1.1 编码语言的分类165 11.1.2 编码语言特性165 11.1.3 面向对象语言的特点166 11.1.4 编码语言的选择167 11.2 编码风格168 11.2.1 编码的基本原则168 11.2.2 面向对象编码原则169 11.3 人机界面设计171 11.3.1 人机界面分析和设计171 11.3.2 人机界面设计步骤173 11.3.3 人机界面设计指南174 11.4 案例分析175 11.4.1 POS机系统175 11.4.2 短信系统177 11.4.3 出卷系统191 11.5 小结194习题194 第四部分 软件测试与维护 第12章 软件测试196 12.1 软件测试的任务196 12.1.1 验证与确认196 12.1.2 软件测试的组织形式197 12.1.3 软件测试的目的与原则197 12.1.4 完成标准199 12.2 软件测试过程模型200 12.2.1 V模型200 12.2.2 W模型200 12.2.3 H模型201 12.3 软件测试策略201 12.3.1 单元测试202 12.3.2 集成测试204 12.3.3 确认测试205 12.3.4 系统测试205 12.4 测试用例设计205 12.4.1 测试用例设计的目的205 12.4.2 测试用例设计的方法和描述206 12.4.3 测试用例设计的重要性和影响因素206 12.4.4 编写测试用例时的注意事项206 12.5 黑盒技术207 12.5.1 等价类划分法207 12.5.2 边界值分析法208 12.5.3 错误推测法209 12.5.4 因果图法209 12.6 白盒技术211 12.6.1 逻辑覆盖法212 12.6.2 基本路径测试法214 12.6.3 循环测试法218 12.7 集成测试技术219 12.7.1 集成策略219 12.7.2 接口测试221 12.8 自动测试工具221 12.9 调试222 12.9.1 调试过程222 12.9.2 调试策略223 12.1 0案例分析224 12.1 1小结229习题230 第13章 软件维护231 13.1 软件维护概述231 13.1.1 软件维护的任务231 13.1.2 软件维护的特点231 13.1.3 软件可维护性232 13.2 软件维护类型232 13.2.1 纠错性维护232 13.2.2 完善性维护233 13.2.3 适应性维护233 13.2.4 预防性维护233 13.3 软件维护技术与过程233 13.3.1 面向维护的技术234 13.3.2 维护支援技术234 13.3.3 软件维护过程234 13.4 非结构化维护和结构化维护236 13.5 提高可维护性236 13.6 面向对象的软件维护238 13.7 小结238习题238 第五部分 软件工程管理 第14章 软件项目管理240 14.1 项目管理概述240 14.2 软件项目管理范围241 14.2.1 人员241 14.2.2 项目和过程242 14.2.3 软件度量243 14.2.4 软件项目管理计划文档244 14.3 软件团队组织范式246 14.3.1 民主分权式246 14.3.2 控制集权式247 14.3.3 控制分权式248 14.3.4 敏捷团队248 14.4 项目组织原则249 14.5 软件过程管理249 14.5.1 软件过程度量249 14.5.2 软件过程改进250 14.5.3 项目度量25114.6 风险管理251 14.6.1 风险识别252 14.6.2 风险预测252 14.6.3 风险管理252 14.7 软件配置管理253 14.7.1 SCM基本概念253 14.7.2 SCM过程254 14.7.3 SCM中心存储库255 14.8 小结256习题256 第15章 软件项目估算257 15.1 概述257 15.1.1 项目计划与范围257 15.1.2 项目资源257 15.2 软件规模度量258 15.2.1 面向规模的度量258 15.2.2 面向对象的度量260 15.3 软件成本估算的分解技术260 15.3.1 基于问题分解的估算260 15.3.2 基于过程分解的估算262 15.4 经验估算模型263 15.4.1 专家类比推断263 15.4.2 由底向上估算方法263 15.4.3 构造性成本模型264 15.5 成本估算管理266 15.6 案例分析266 15.6.1 短信系统266 15.6.2 POS机系统267 15.7 小结268习题269 第16章 软件项目计划与管理270 16.1 软件质量管理270 16.1.1 质量概念270 16.1.2 软件质量保证271 16.1.3 软件质量度量272 16.1.4 软件复审275 16.1.5 软件质量认证标准276 16.2 项目计划278 16.2.1 项目进度安排278 16.2.2 进度安排方法279 16.2.3 项目进度的跟踪管理281 16.3 软件项目管理工具281 16.4 小结286习题287 参考文献2 88
南京工程学院 车辆工程系 本科毕业设计(论文)开题报告 题 目:基于数字图像处理的车牌定位和分割的研究 专 业: 自动化(车辆电子电气) 班 级: K车电气051 学 号:240061443 学生姓名: 朱培诚 指导教师: 顾新艳 讲 师 2010年3月 说 明 1.根据南京工程学院《毕业设计(论文)工作管理规定》,学生必须撰写《毕业设计(论文)开题报告》,由指导教师签署意见、教研室审查,系教学主任批准后实施。 2.开题报告是毕业设计(论文)答辩委员会对学生答辩资格审查的依据材料之一。学生应当在毕业设计(论文)工作前期内完成,开题报告不合格者不得参加答辩。 3.毕业设计开题报告各项内容要实事求是,逐条认真填写。其中的文字表达要明确、严谨,语言通顺,外来语要同时用原文和中文表达。第一次出现缩写词,须注出全称。 4.本报告中,由学生本人撰写的对课题和研究工作的分析及描述,应不少于2000字,没有经过整理归纳,缺乏个人见解仅仅从网上下载材料拼凑而成的开题报告按不合格论。 5.开题报告检查原则上在第2~4周完成,各系完成毕业设计开题检查后,应写一份开题情况总结报告。 本科毕业设计(论文)开题报告 学生姓名 朱培诚 学 号 240061443 专 业 自动化(车辆电子电气) 指导教师 顾新艳 职 称 讲 师 所在院系 车辆工程 课题来源 自拟课题 课题性质 工程技术研究 课题名称 基于数字图像处理的车牌定位和分割的研究 毕业设计的内容和意义 采用数字图像处理的原理和技术,进行车牌区域的准确定位和分割的研究,给出相应的算法,并通过VC编程实现。 毕业设计的具体内容: 1.熟悉和了解数字图像处理的原理和技术。 2.熟悉VC的编程和调试方法。 3.掌握数字图像处理的常规算法,尤其对图像的几何校正,边缘检测、区域定位和图像分割原理和算法要有深入的了解。 4. 完成车牌区域的准确定位和分割的设计方案,给出相应的算法,并通过编程实现。 本课题研究的意义: 在交通路口的违章监视,在高速公路收费入口,在涵洞、桥梁的入口以及在停车场和加油站的管理中,都需要对汽车牌照进行记录,而目前这些工作大多数都是由人工完成的,工作量很大,有时也难免会出现错误,如果改用智能系统进行自动的检测和识别,则会大大提高工作的速度,降低管理人员的工作量,提高服务的效率与质量。 在国内现有技术的基础之上进一步研究汽车牌照智能识别技术实现对实时采集到的汽车牌照图像进行分析,准确定位分割、提取出图像中的汽车牌照,并快速自动智能地识别出汽车牌照,还可以全面消除人为因素,因而对车牌识别技术的研究和应用系统开发具有重要的现实意义。 文 献 综 述 车牌自动识别系统从上一世纪80年代开始进入应用研究阶段、这个阶段的研究没有形成完整的系统体系,而是就某一具体的问题进行研究,通常采用简单的图像处理方法来解决。进入20世纪90年代后,随着计算机视觉的发展和计算机性能的提高,开始出现车牌识别的系统化研究。中国、美国、日本、法国等国家相继投入大量的人力、物力进行应用研究,随着社会的进一步发展,交通状况急需更快的发展来适应经济发展需要,各国更加关注对该系统的研究和应用。 文献[1]中阐述了智能交通系统的概念于1990年由美国智能交通学会(ITS America,当时名称为IVHS America)提出,并在世界各国大力推广。经过10多年的推广、试行和发展,智能交通系统目前己在世界上经济发达国家和经济较为发达国家的一些都市及高速公路系统中实施。实践证明,迄今为止,在美国、欧洲、亚洲都已有成功应用的范例。在国外,以色列Hi-Tech公司的See/Car System系列,香港Asia VisionTechnology公司的VECON产品,新加坡Optasia公司的VLPRS系列都是比较成熟的产品。虽然国外汽车牌照识别系统研究工作己有一定进展,但并不适合我国汽车牌照识别,其原因主要有我国车牌本身的特点决定的。我国车辆牌照缺乏统一的标准,根据不同汽车、车型、用途,规定了多种牌照格式(例如分为军车、警车、普通车等);悬挂位置随机,使得车牌识别过程中缺乏规律,使车牌定位分割、字符切分难度增加,准确性降低;车牌长期暴露易受污损,使得车牌区域模糊不清,易发生粘连、断裂等现象,在国外发达国家不允许由于环境、道路或人为因素造成汽车牌照污染严重的车辆上路行驶;我国车辆牌照由汉字、字母和数字组成,汉字的识别与字母和数字的识别有很大的不同,从而增加了识别的难度;其他国家汽车牌照的底色和字符颜色统一,只有对比度较强的两种颜色,而我国汽车牌照底色和字符有蓝/白、黑/红、黑/白等多种颜色组合;还有设置的营运牌照及张贴的广告信息,容易在车牌定位时产生干扰、误定位;车牌附近环境恶劣,往往有复杂的外形及安全杠等,不利于快速定位。 文献[2]中阐述了国内在90年代也开始了车牌识别的研究。由于中国车牌与国外的差异,加上车牌上汉字的存在。所以照搬国外的技术并不完全可行。对于国内的己应用系统中较成功的有浙江大学开发的基于web模式的LPR系统,中科院自动化研究所汉王科技公司开发的“汉王眼车牌识别系统”。另外,亚洲视觉科技有限公司、深圳吉通电子有限公司、中国信息产业部下属的中智交通电子有限公司等也有自己的产品,另外西安交通大学的图像处理和识别研究室、上海交通大学的计算机科学和工程系、清华大学人工智能国家重点实验室等也做过类似的研究。目前这些系统普遍存在的问题有:全天候识别率并不稳定, 文 献 综 述 特别是在夜间,或不良天气下识别率会降低到50%左右。还有许多其它问题需要解决,如国内许多论文谈及已实现的系统,都是在对近似理想条件下的汽车图像识别,对于车牌倾斜角度很大,车牌上字符模糊等情况提出的解决办法甚少。因此这样的系统即使识别率较高,也是建立在苛刻的特定的拍照环境下的。车牌自动识别系统产品中还存在一些不足,因而LPR技术的研究还有许多工作要做:从目前一些产品的性能指标可以看出,LPR系统的识别率和识别速度有待提高。研究高速、准确的定位与识别算法是当前的主要任务。上述产品中所使用的汽车图像均为灰度图像,而车牌本身是彩色物体,其底色和字符颜色为有限的几种,具有明显的颜色特征,车牌定位及字符的分割和识别没有用到颜色特征,采用彩色图像模式,目前的算法也很少涉及颜色特征,这在一定程度上影响了系统的性能。对于车牌彩色信息的利用有待于深入研究。另外目前只能处理单个车牌的汽车图像,对于一幅图像中多个车牌的识别则无能为力。这使得目前对多个车道进行监控时,需要多套摄像设备和车牌识别所需的计算机。如能深入研究一幅图像中多个车牌的识别问题,则可降低系统成本,提高工作效率。 所以从技术上对牌照自动识别系统进行进一步的改进完善是很有必要的。在软件上这主要要求提高字符识别率,同时提高软件的运行速度,提高实时性。相信随着研究的深入,LPR技术定会走向成熟。 文献[3]中阐述了目前国内外汽车牌照定位与识别技术主要采用软硬结合方式和软件方式两种技术方案。所谓软硬结合方式,就是首先通过专用的图像抓拍设备获取一幅适合于计算机识别汽车牌照的高质量图像,然后用软件和硬件结合的方式对所获取的专用图像进行牌照识别,它的最大优点就是识别率高,能够全天候工作。所谓软件方式,就是通过识别软件对普通的车辆图像进行牌照识别,它的最大优点就是成本低,通用性好。车牌自动识别系统主要有摄像装置、视频采集接口、计算机和辅助照明装置组成。计算机通过视频采集接口采集摄像装置摄入的视频图像,经处理和识别得到车牌号。在自然光较暗影响识别效果时,由辅助照明装置提供摄像光源。硬件部分包括车辆感应器,高速摄影装置等。车辆感应器的功能是感应车辆的到来,触发高速摄影装置在一定时间内动作抓拍图像。如在高速公路上,通常在收费处前方公路两侧埋置电磁感应圈,当车辆驶入感应区内,电磁感应圈产生电流,触发摄影头工作。除此之外,还有激光红外线车辆感应器等。埋置电磁感应线圈的缺点是工程量大,而激光红外线车辆感应器容易引起二次触发,即脱车引起的触发拍照。动态车牌图像捕捉系统主要由高分辨率摄像机,多光谱照明灯,图像处理器及控制器组成。它根据亮度变化,即可完成车牌的抓拍。相比而言,动态车牌图像捕捉 文 献 综 述 系统可以在白天和夜间等多种情况下工作,清楚捕捉高速运动中的汽车牌照图像,其效果不受日光,车灯等环境因素的影响。大量实验表明该方案是最理想的解决可靠性的方案。 图像输入通常由硬件完成,牌照定位与字符识别通常由软件完成。 文献[4][5][6]中阐述了日前存在的大量的车牌定位算法,选择一个好的定位算法成为车牌识别的一个关键问题。文中针对基于投影法的车牌定位算法。在VC平台上对车牌图像进行预处理后,再通过找点和标出矩形即可实现车牌的定位。通过大量的试验得出,本算法可以解决车牌定位时遇到的绝大部分问题,具有较高的研究价值和社会经济效益。 文献[7]中对智能交通系统的核心技术——汽车牌照识别技术进行了研究,在图像处理技术的基础上,着重研究了车牌区域定位技术,析了日前有代表性的车牌定位方法,介绍了利用粒子图像测速关联PIV(Particle Image Velocimeter)算法原理,提出了一种采用车牌字符笔画2个边缘互相关值最大的方法进行车牌定位的算法,准确而快速地检出了车牌区域,为后续车牌字符识别打下了很好的基础。 文献[8][9][10][11]中阐述了针对不同尺寸车牌图像的定位问题,提出了一种新的自适应车牌定位方法。该方法首先根据车牌区域的共性来提取图像的纵向边缘;然后由车牌区纵向纹理和边缘密度等特征,采用一系列步骤自适应去除干扰边缘来保留类车牌特征区域;最后通过横向形态学运算使类车牌区闭合,以有效地克服以往形态学结构元素难以随车牌尺寸变化自适应选取的问题;同时提出了根据场景实际情况,选用灰度调整和颜色来判别模块的观点。通过实际场景中大量车牌样本的验证结果表明,该算法不仅准确率较高,而且自适应性良好,具有实用价值。 参考文献: [1] 刘允才.智能交通国际发展概况和国内优先考虑的课题[J].公路,2001,11(11):26-34. [2] Liu Jilin,Ma Hongqing.A High Performance License Plate Recognition System Basedon the Web Technique[D]. [3] 郑南宁,张西宁,戴莹,朱海安.行驶车辆牌照自动识别系统[J].西安交通大学学报,1991,l:43-53. [4] 张俭鸽,李娜.车牌定位在VC中的实现[J].中国科技信息,2009, (13):123-124. [5] 郑影.基于VC++的汽车牌照定位与识别系统的设计[D].吉林大学硕士学位论文,2009. [6] 张宏林.精通Visual C++数字图像模式识别技术及工程实践[M]:第2版.北 文 献 综 述 京:人民邮电出版社,2008. [7] 张丽伟,张晶.基于图像处理的车牌定位方法的研究[J].长春工程学院学报(自然科学版),2009,10(2):100-103. [8] 李宇成,阴亮.基于图像的运动车辆速度测量[J].北方工业大学学报,2008(3):32—36. [9] 王广宇.汽车牌照识别系统综述[J].郑州轻工业学院学报(自然科学报),2001,16(2):47-50. [10] 李波,曾致远,周建中.一种自适应车牌图像定位新方法[J].中国图象图形学报,2009,14(10):1978-1984. [11]Kenneth.R.Castleman.Digital Image Processing,Prentice Hall.1998,4. 研 究 内 容 本课题主要利用数字图像处理的原理和技术,完成车牌区域的准确定位和分割的设计方案,研究相应的算法,并通过编程实现。 其具体内容如下: 1、理解和掌握数字图像处理的原理和技术,能熟练运用数字图像处理的常规算法。 2、深入研究预处理中的灰度化、二值化、背景削弱、中值滤波等原理,以及图像的灰度变换空间滤波处理等,探索车牌定位常用的方法,研究现在流行的一些算法,总结出其优点和缺点,能够继承传统方法的优点,并加以改进和提高。 3、掌握算法实现的编程语言,熟练运用设计实现的平台Visual C++ 6.0,提高查阅资料的能力,并通过编程实现车牌的定位。 4、研究一种新型的车牌定位方法,本课题采用多层次分割的思想,每次分割都尽可能地减少分析范围,经过多次分割后最终定位出车牌区域。 研 究 计 划 第1-2周 收集资料,熟悉课题,确定系统总体研究方案。 第3周 熟悉资料,写出开题报告。 第4—5周 熟悉数字图像处理的主要内容。 第6—7周 熟悉VC语言的编程和调试方法。 第8—9周 熟悉并掌握数字图像的常规算法,重点研究边缘检测和区域分割等算法。 第10-11周 用VC编程实现并调试各个处理模块。 第12-13周 对整个系统进行软件联调,整理设计成果。 第14周 撰写论文。 第15周 修改论文,准备答辩。 第16周 毕业答辩。 特 色 与 创 新 在车辆识别系统中,牌照区域定位是影响车牌识别系统性能的重要因素之一车牌定位准确与否直接影响字符识别的准确率,以往的拍照定位重要包括:J.Barroso等基于提出的基于水平线搜索的定位方法;R.Parisi提出的机遇TFC变换的频域分析法;Charl Coeitzee等提出的基于Niblack二值化算法及自适应边界搜索算法的定位方法。这些方法或者对背景比较复及光照条件比较敏感,或者定位速度比较慢,为了克服这些缺陷,本课题提出了基于特征的车辆牌照实时定位算法和多层次分割算法,能够更高效地实现车牌的准确定位和分割,充分体现了该系统的实时性。 指导教师 意 见 指导教师签名: 年 月 日 教研室意见 主任签名: 年 月 日 系部意见 教学主任签名: 年 月 日
发帖
Java
加入

4.9w+

社区成员

Java相关技术讨论
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
申请成为版主
帖子事件
创建了帖子
2003-01-17 11:16
社区公告
暂无公告