面向对象的程序设计之类与对象-本科讲课完整ppt课件_第1页
面向对象的程序设计之类与对象-本科讲课完整ppt课件_第2页
面向对象的程序设计之类与对象-本科讲课完整ppt课件_第3页
面向对象的程序设计之类与对象-本科讲课完整ppt课件_第4页
面向对象的程序设计之类与对象-本科讲课完整ppt课件_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.,讲课人:CheristHuan专业:模式识别与智能系统(PatternRecognitionandIntelligentSystem),面向对象的程序设计类与对象及其应用,.,面向对象的程序设计,传统的面向过程程序设计是围绕功能进行的,用一个函数实现一个功能。所有的数据都是公用的,一个函数可以使用任何一组数据,而一组数据又能被多个函数所使用。程序设操作。计者必须考虑每一个细节,什么时候对什么数据进行,面向对象程序设计采取的是另外一种思路。它面对的是一个个对象。实际上,每一组数据都是有特定的用途的,是某种操作的对象。也就是说,一组操作调用一组数据。,.,面向对象的程序设计,程序设计者的任务包括两个方面:一是设计所需的各种类和对象,即决定把哪些数据和操作封装在一起;二是考虑怎样向有关对象发送消息,以完成所需的任务。各个对象的操作完成了,整体任务也就完成了。,因此人们设想把相关的数据和操作放在一起,形成一个整体,与外界相对分隔。这就是面向对象的程序设计中的对象。,.,面向对象的程序设计,在面向过程的结构化程序设计中,人们常使用这样的公式来表述程序,程序=算法数据结构,面向对象的程序组成:,对象=算法数据结构程序=(对象+对象+对象+)+消息消息:就是对对象的控制。程序设计的关键是设计好每一个对象以及确定向这些对象发出的命令,使各对象完成相应的操作。,.,主要内容,.,1.1类的定义,类将一些数据及与数据相关的函数封装在一起,使类中的数据得到很好的“保护”。在大型程序中不会被随意修改。,类是一种复杂的数据类型,它是将不同类型的数据和与这些数据相关的运算封装在一起的集合体。,.,类的定义格式:class类名private:成员数据;成员函数;public:成员数据;成员函数;protected:成员数据;成员函数;;,关键字,类名,私有,公有,保护,classStudentprivate:charName20;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夜间图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论