




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
讲课人 CheristHuan专业 模式识别与智能系统 PatternRecognitionandIntelligentSystem 面向对象的程序设计 类与对象及其应用 面向对象的程序设计 传统的面向过程程序设计是围绕功能进行的 用一个函数实现一个功能 所有的数据都是公用的 一个函数可以使用任何一组数据 而一组数据又能被多个函数所使用 程序设操作 计者必须考虑每一个细节 什么时候对什么数据进行 面向对象程序设计采取的是另外一种思路 它面对的是一个个对象 实际上 每一组数据都是有特定的用途的 是某种操作的对象 也就是说 一组操作调用一组数据 面向对象的程序设计 程序设计者的任务包括两个方面 一是设计所需的各种类和对象 即决定把哪些数据和操作封装在一起 二是考虑怎样向有关对象发送消息 以完成所需的任务 各个对象的操作完成了 整体任务也就完成了 因此人们设想把相关的数据和操作放在一起 形成一个整体 与外界相对分隔 这就是面向对象的程序设计中的对象 面向对象的程序设计 在面向过程的结构化程序设计中 人们常使用这样的公式来表述程序 程序 算法 数据结构 面向对象的程序组成 对象 算法 数据结构程序 对象 对象 对象 消息消息 就是对对象的控制 程序设计的关键是设计好每一个对象以及确定向这些对象发出的命令 使各对象完成相应的操作 主要内容 1 1类的定义 类将一些数据及与数据相关的函数封装在一起 使类中的数据得到很好的 保护 在大型程序中不会被随意修改 类是一种复杂的数据类型 它是将不同类型的数据和与这些数据相关的运算封装在一起的集合体 类的定义格式 class类名 private 成员数据 成员函数 public 成员数据 成员函数 protected 成员数据 成员函数 关键字 类名 私有 公有 保护 classStudent private charName 20 floatMath floatChiese public floataverage voidSetName char name voidSetMath floatmath voidSetChinese floatch floatGetAverage void 分号不能少 用关键字priviate限定的成员称为私有成员 对私有成员限定在该类的内部使用 即只允许该类中的成员函数使用私有的成员数据 对于私有的成员函数 只能被该类内的成员函数调用 类就相当于私有成员的作用域 用关键字public限定的成员称为公有成员 公有成员的数据或函数不受类的限制 可以在类内或类外自由使用 对类而言是透明的 而用关键字protected所限定的成员称为保护成员 只允许在类内及该类的派生类中使用保护的数据或函数 即保护成员的作用域是该类及该类的派生类 1 2对象 只有在定义了属于类的变量后 系统才会为类的变量分配空间 类的变量我们称之为对象 在定义类时 只是定义了一种数据类型 即说明程序中可能会出现该类型的数据 并不为类分配存储空间 对象是类的实例 定义对象之前 一定要先说明该对象的类 要想学好一门编程语言 必须多加练习 在实际的项目进行锻炼学习是学习一门编程语言最快的方法 同学们应该多参加一些实际相关项目进行锻炼 下面结合自己学习经验以及研究生阶段参加的实际项目经验 讨论一下 实际中根据项目要求设计类的过程 这里主要根据我做过的一个简单项目 视频监控系统中烟雾检测的开发过程进行讨论设计一个烟雾检测类过程 首先 仔细分析项目的需求 其次 根据项目的需求设计烟雾检测类的接口函数 接口函数就是烟雾检测类的成员函数 也就是功能函数 项目的需求 对视频监控系统中 视频图像出现的烟雾进行检测并报警 将检测出的烟雾区域在视频图像中标出 功能函数接口public voidCheck Smoke UCHAR srcImg current intwidth intheight int 色彩转换voidColorConvert RGBtoGray UCHAR srcImg UCHAR destImg intwidth intheight 帧差函数voidAbsDiff UCHAR srcImg1 UCHAR srcImg2 UCHAR destImg intwidth intheight 通过颜色把烟雾从目标中区分开voidcheckSmokeFromTraget color UCHAR srcImg UCHAR detImg intwidth intheight 通过色调条件去除一些非烟雾区域voidcheckSmokeFromTraget HSV UCHAR srcImg UCHAR detImg intwidth intheight 投影滤波voidTouYingFliter UCHAR srcImg UCHAR detImg intwidth intheight 中值滤波voidMidFilter UCHAR srcImg UCHAR destImg intwidth intheight 二值化函数voidTwoValue UCHAR srcImg UCHAR detImg intwidth intheight intThresold 序号转换voidconvert intfirst int 再次 根据项目的需求以及成员函数 设计类的数据成员 private 图像高度intHeight 图像宽度intWidth 下标序号intlast frame intIdex11 Idex12 intfirst intIdex21 Idex22 保存帧差需要的图像UCHAR CalImageBuf 保存面积变化double AreaBuf 最后 根据设计的类 进行功能测试 验证设计类的有效性 烟火检测接口定义 创建烟火检测实例 返回 成功返回true 失败返回false declspec dllexport boolCreateFireworksDetecter intid 分析对象IDintwidth intheight 烟火检测 返回 烟火检测结果结构体 declspec dllexport boolFireworksDetect intid 分析对象IDbyte bmp 分析图像数据 bpp intwidth 图像宽 单位 pixel intheight 图像高 单位 pixel byte regionsMask 烟火区域模板图 bpp 背景为 火为 烟为 释放烟火检测实例 返回 正确返回true 错误返回false declspec dllexport boolFreeFireworksDetecter intid 分析对象ID 3 1雾天图像增强 3 2雨雪天气图像增强 3 3夜间图像增强 3 6数字水印 3 4烟火检测系统 3 5数据库读写系统 计算机应用系统在日常工作生活中随处可见 下面主要就研究生阶段参加的部分实际项目简单介绍下C 语言在实际项目中的应用 3 1雾天图像增强 3 2雨雪天气图像增强 3 3夜间图像增强 3 4烟火检测系统 3 5数据库读写系统 3 6数字水印 总结 致谢 感谢计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全日安全培训课件
- 超市劳动合同书
- 瓶装燃气安全使用培训课件
- 安全施工技术管理培训课件
- 东丽区打井工程方案流程(3篇)
- 顶面隔音工程及方案(3篇)
- 电气工程编制方案(3篇)
- 房屋工程维修方案范本(3篇)
- 地铁工程介入方案(3篇)
- 猫咪绘本课件
- UG有限元的分析第12章
- 田野考古学基本理论与方法
- 能源服务、产品、设备和能源采购控制程序
- 焊装工艺学习课件
- 【个人简历】保洁经理求职个人简历模板
- 绵阳东辰学校五升六预备年级招生考试数学试题
- GB/T 15856.2-2002十字槽沉头自钻自攻螺钉
- 插花艺术发展简史
- 学校防溺水“七不两会”教育(课堂)课件
- 《科学思维与科学方法论》第一章 科学问题与科研选题
- (完整版)电除颤操作评分标准
评论
0/150
提交评论