bmp图像处理软件的设计和实现本科毕业论文(编辑修改稿)内容摘要:

录仪发展成滚筒式绘图仪, GerBer 公司把数控机床发展成为平板式绘图仪。 在整个 50 年代,只有电子管计算机,用机器语言编程,主要应用于科学 计算 ,为这些计算机配置的图形设备仅具有输出功能。 计算机图形学处于准备和酝酿时期,并称之为:“被动式”图形学。 从 1962 年,林肯实验室的 Sutherland 发表一篇题为“一个人机交互通信的图形系统”的博士论文,他在论文中首次使用计算机图形 学 “ Computer Graphics”这个术语,证明交互计算机图形学是一个可行的、有用的研究领域,从而确定计算机图形学作为一个崭新的科学分支的独立地位屹立于计算机领域。 此后,国内外都很重视图形学的发展以及研究,各种各样的图像处理软件显现出来,比如PhotoShop 和 Picasa。 70 年代是计算机图形学发展过程中一个重要的历史时期。 由于光栅显示器的产生,在 60 年代就已萌芽的光栅图形学算法,迅速发展起来,区域填充、裁剪、消隐等基本图形概念、及其相应算法纷纷诞生,图形学进入第一个兴盛的时期,并开始出现实用的 CAD 图形系统。 又因为通用、与设备无关的图形软件的发展,图形软件功能的标准化问题被提出来。 1974 年,美国国家标准化局 ( ANSI)在 ACM SIGGRAPH 的一个与“与机器无关的图形技术”的工作会议上,提出制 3 定有关标准的基本规则。 此后 ACM 专门成立一个图形标准化委员会,开始制定有关标准。 该委员会于 197 1979 年先后制定和修改 “核心图形系统” ( Core Graphics System)。 ISO 随后又发布了计算机图形接口 CGI(Computer Graphics Interface)、计算机图形元文件标 准 CGM( Computer Graphics Metafile) 、计算机图形核心系统 GKS(Graphics Kernel system)、面向程序员的层次交互图形标准 PHIGS( Programmer39。 s Hierarchical Interactive Graphics Standard) 等。 这些标准的制定,为计算机图形学的推广、应用、资源信息共享,起到重要作用。 国内在此领域的研究中最具有代表性的是梦幻科技推出的彩影图形处理和相片制作软件,彩影拥有非常智能、傻瓜而功能强大的图像处理、修复和合成功能。 解 决了国内外图像处理软件过于复杂、不易操作的问题,让所有用户不需要专业的图像美工技能即可轻松点击并制作出绚丽多彩的图像特效图。 新一代在线图像编辑软件 OPCOL 是国内领先的在线图像处理系统,它采用最新 Flash 技术开发,不用下载任何插件,只需 flash10 的支持即可实现在线图片编辑,可无缝嵌入主流浏览器, 具有文件体积小速度快,兼容各种浏览器等特点;适于各种自动在线图片编辑的场合使用,是未来网站的一个新功能和亮点,满足您的创新需求,解决网站在线图片编辑难题。 美国 MathWorks 公司出品的 MATLAB 软件, 功能十分强大,它主要应用于工程计算、信号处理与通讯、图像处理等领域。 MATLAB 之所以称为世界流行的科学计算与数学应用软件,是因为它有着强大的矩阵运算和处理功能,具体表现在强大的数值计算功能、数据分析和科学计算可视化功能、强大的符号计算功能、强大的非线性动态系统建模和仿真功能、灵活的程序接口功能等方面。 而数字图像处理与矩阵运算具有密切的联系,并且 MATLAB 图像处理工具箱提供了丰富的图像处理函数,熟练使用这些函数可以完成几乎所有的图像处理工作。 应用 MATLAB 进行数字图像处理可以节省大量编写低层算法源代码 的时间,避免程序设计中的重复劳动,达到事半功倍的效果。 另外,新版本的 MATLAB 在图形用户界面 ( GUI) 的制作上作了很大的改善。 MATLAB 的不足之处是运行程序时需要安装有 MATLAB 系统,可移植性能差,应用不方便,执行速度慢。 Photoshop 是 Adobe 公司开发的世界上最优秀的平面图像处理软件之一,集图像扫描、编辑 修改、图像制作、广告创意,图像输入与输出与一体,在图像处理及平面设计领域里, Photoshop 一直都以界面美观,操作方便,在图像处理和电脑绘图软件领域里独占鳌头。 Photoshop 的功能非 常强大,它支持多种图像格式和颜色模式,能同时进行多色层处理。 其绘画功能和选取功能能使图像编辑变得十分方便,图像变形功能可用来制作特殊的视觉效果。 本课题研究的主要内容 本课题主要研究如何利用 Visual C++ 集成开发环境开发一个图像处理软件。 在熟悉图像处理相关技术,熟悉图像处理各种算法之后,在 Windows 操作 4 系统下,利用 C++语言在 Visual C++ 开发环境下,设计和实现一个图像处理软件。 本图像处理软件实现对 BMP 图像的基本操作 ,主要有五部分:图像的文件操作、图像的几何变换、图像的特效 显示、图像的灰度变化、图像的分析变化,用各种图像处理软件的算法实现其各个模块的功能。 现有图像处理软件 随着对图像处理需求的扩大,现有的图像处理软件多种多样,数不胜数。 本文简单介绍两个比较有代表性的图像处理软件: Photoshop 和 Picasa。 Photoshop 简介: Photoshop 是平面图像处理业界霸主 Adobe 公司推出的跨越 PC 和 MAC 两界首屈一指的大型图像处理软件。 它功能强大,操作界面友好,得到广大第三方开发厂家的支持,从而也赢得众多的用户的青睐。 Photoshop 是目前公认的最好的通用平 面美术设计软件,它的功能完善,性能稳定,使用方便,所以在几乎所有 的 广告、出版、软件公司, Photoshop 都是首选的平面工具。 它是专门用来进行图像处理的软件。 通过它可以对图像修饰、对图形进行编辑,以及对图像的色彩处理,另外,还有绘图和输出功能等。 在实际生活和工作中,可以将数码照相机拍摄下来的照片进行编辑和修饰,也可以将现有的图形和照片,用扫描仪扫入计算机进行加工处理,还可以把摄像机摄入的内容转移到计算机上,然后用它实现对影像的润色。 Picasa 简介: Google Picasa 原为独立收费的图片处理软件,其 界面美观华丽,功能实用丰富。 被 Google 收购后,已改为完全免费软件。 只需拥有 Picasa,你就可以随心所欲地体验你的歌谱图片和数码相。 Google 照片处理软件尤其适合于初级数码照片爱好者使用, Picasa 可以通过简单的单次点击式修正来进行高级修改处理,只需动动指尖来处理相片即可获得震撼效果。 它是一个可在计算机上查看、整理、修改和共享图片的软件,它会让所有这些工作变得简单而有趣。 Picasa 不会未经您的允许就删除图片或将图片放到网络上。 它自动将你的相片从你的数码相机传输到你的电脑上 ,管理图片并让你能在几 秒中内查找到所需的图片,让你轻松地编辑 , 打印以及共享相片 ,创建幻灯片,定购打印以及其它更多。 Picasa 会自动根据照片拍摄的时间,目录,机型来判断,自动建立像簿,查找方便,还有 timeline 功能。 2 开发环境及主要技术介绍 5 2 开发环境及主要技术介绍 面向对象编程 面向对象编程 ( Object Oriented Programming, OOP,面向对象程序设计)计算机 编程架构。 OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。 OOP 达到了 软件工程 的三个主要目标:重用性、灵活性和扩展性。 为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。 面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、 动态 绑定、数据封装、 多态性 、消息传递。 通过这些概念面向对象的思想得到了具体的体现。 ( Object) : 可以对其做事情的一些东西。 一个对象有状态、行为和标识三种属性。 ( class) : 一个共享相同结构和行为的对象的集合。 ( encapsulation): 第一层意思:将数据和操作捆绑在一起,创造出一个新的类型的过程。 第二层意思:将接 口与实现分离的过程。 : 类之间的关系,在这种关系中,一个类共享了一个或多个其他类定义的结构和行为。 继承描述了类之间的 “是一种 ”关系。 子类可以对基类的行为进行扩展、覆盖、重定义。 : 既是类之间的关系也是对象之间的关系。 在这种关系中一个对象或者类包含了其他的对象和类。 组合描述了 “有 ”关系。 : 类型理论中的一个概念,一个名称可以表示很多不同类的对象,这些类和一个共同超类有关。 因此,这个名称表示的任何对象可以以不同的方式响应一些共同的操作集合。 : 也称动态类型,指的是一个对象或 者表达式的类型直到运行时才确定。 通常由编译器插入特殊代码来实现。 与之对立的是静态类型。 : 也称静态类型,指的是一个对象或者表达式的类型在编译时确定。 : 指的是一个对象调用了另一个对象的方法(或者称为成员函数)。 : 也称为成员函数,是指对象上的操作,作为类声明的一部分来定义。 方法定义了可以对一个对象执行那些操作。 面向对象主要特征: 6 封装性:封装是一种 信息隐蔽 技术,它体 现于类的说明,是对象的重要特性。 封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的 算法 )对用户是隐蔽的。 封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。 继承性:继承性是子类自动共享父类之间数据 和方法的机制。 它由类的派生功能体现。 一个类直接继承其它类的全部描述,同时可修改和扩充。 继承具有传递性。 继承分为单继承(一个子类只有一父类)和多重继承(一个类有多个父类)。 类的对象是各自封闭的,如果没继承性机制,则类对象 中数据 、方法就会出现大量重复。 继承不仅支持系统的可重用性,而且还促进系统的可扩充性。 多态性:对象根据所接收的消息而做出动作。 同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为 多态性。 利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。 例如: Print 消息被发送给一图或表时调用的打印方法与将同样的 Print 消息发送给一正文文件而调用的打印方法会完全不同。 多态性的实现受到继承性的支持,利用类继承的层次关系,把具有通用功能的协议存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低层次,这样,在这些低层次上生成的对象就能给通用消息以不同的响应。 在 OOPL 中可通过在 派生类 中重定义基类函数(定义为 重载函数 或虚函数)来实现多态性。 Visual C++ Visual C++ 概述 Visual C++ ,简称 VC 或 ,是微软推出的一款 C++编译器,将 “高级语言 ”翻译为 “低级语言 ”的程序。 它不仅是一个 C++编译器,而且是一个基 于 Windows 操 作 系统 的 可视 化 集 成 开发 环境 ( integrated development environment, IDE)。 Visual C++ 由许多组件组成,包括 编辑器 、调试器以及程序向导 App Wizard、类向导 Class Wizard 等开发工具。 这些组件通过一个名为Developer Studio 的组件集成为和谐的开发环境。 Visual C++ 以拥有 “语法高亮 ”, IntelliSense(自动编译功能)以及高级除错功能而著称。 比如,它允许用户进行远程调试,单步执行等。 还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。 其编译及建置系统 以预编译头文件、最小重建功能及累加连结著称。 这些特征明显缩短程式编辑、编译及连结的时间花费,在大型软件计划上尤其显著。 Visual C++ 主要部分 7 a. Developer Studio 这是一个 集成开发环境 ,我们日常工作的 99%都是在它上面完成的,再加上它的标题赫然写着 “Microsoft Visual C++”,所以很多人理所当然的认为,那就是Visual C++了。 其实不然,虽然 Developer Studio 提供了一个很好的 编辑器 和很多Wizard,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的幕后英雄后面会介绍。 我们也知道, Developer Studio 并不是专门用于 VC 的,它也同样用于 VB, VJ, VID 等 Visual Studio 家族的其他同胞兄弟。 所以不要把Developer Studio 当成 Visual C++,它充其量只是 Visual C++的一个壳子而已。 b. MFC 从理论上来讲, MFC 也不是专用于 Visual C++, Borland C++, C++Builder和 Symantec C++同样可以处理 MFC。 同时,用 Visual C++编写代码也并不意味着一定要用 MFC,只要愿意,用 Visual C++来编写 SDK 程序,或者 使用 STL,ATL,一样没有限。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。