计算机图形学课程设计书(共26页).doc

上传人:飞****2 文档编号:13594622 上传时间:2022-04-30 格式:DOC 页数:26 大小:706.50KB
返回 下载 相关 举报
计算机图形学课程设计书(共26页).doc_第1页
第1页 / 共26页
计算机图形学课程设计书(共26页).doc_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《计算机图形学课程设计书(共26页).doc》由会员分享,可在线阅读,更多相关《计算机图形学课程设计书(共26页).doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上课程设计(论文)任务书 理 学院信息与计算科学 专业 2015-1班一、课程设计(论文)题目: 图像融合的程序设计 二、课程设计(论文)工作:自 2018 年 1 月 10 日起至 2018 年 1 月 12日止三、课程设计(论文) 地点: 2-201 四、课程设计(论文)内容要求:1本课程设计的目的(1)熟悉Delphi7的使用,理论与实际应用相结合,养成良好的程序设计技能; (2)了解并掌握图像融合的各种实现方法,具备初步的独立分析和设计能力; (3)初步掌握开发过程中的问题分析,程序设计,代码编写、测试等基本方法;(4)提高综合运用所学的理论知识和方法独立分析和

2、解决问题的能力;(5)在实践中认识、学习计算机图形学相关知识。 2课程设计的任务及要求1)基本要求:(1)研究课程设计任务,并进行程序需求分析;(2)对程序进行总体设计,分解系统功能模块,进行任务分配,以实现分工合作;(3)实现各功能模块代码; (4)程序组装,测试、完善系统。2)创新要求: 在基本要求达到后,可进行创新设计,如改进界面、增加功能或进行代码优化。3)课程设计论文编写要求(1)要按照书稿的规格打印誊写课程设计论文(2)论文包括封面、设计任务书(含评语)、摘要、目录、设计内容、设计小结(3)论文装订按学校的统一要求完成4)参考文献:(1)David F.Rogers,计算机图形学的

3、算法基础,机械工业出版社(2)Steve Cunningham,计算机图形学,机械工业出版社(3) 5)课程设计进度安排内容 天数 地点程序总体设计 1 实验室软件设计及调试 1 实验室答辩及撰写报告 1 实验室、图书馆 学生签名: 2018年1月12日摘要图像融合是图像处理中重要部分,能够协同利用同一场景的多种传感器图像信息,输出一幅更适合于人类视觉感知或计算机进一步处理与分析的融合图像。它可明显的改善单一传感器的不足,提高结果图像的清晰度及信息包含量,有利于更为准确、更为可靠、更为全面地获取目标或场景的信息。图像融合主要应用于军事国防上、遥感方面、医学图像处理、机器人、安全和监控、生物监测

4、等领域。用于较多也较成熟的是红外和可见光的融合,在一副图像上显示多种信息,突出目标。一般情况下,图像融合由低到高分为三个层次:数据级融合、特征级融合、决策级融合。数据级融合也称像素级融合,是指直接对传感器采集来得数据进行处理而获得融合图像的过程,它是高层次图像融合的基础,也是目前图像融合研究的重点之一。这种融合的优点是保持尽可能多得现场,提供其它融合层次所不能提供的细微信息。像素级融合中有空间域算法和变换域算法,空间域算法中又有多种融合规则方法,如逻辑滤波法,灰度,对比调制法等;变换域中又有金字塔分解融合法,小波变换法。其中的小波变换是当前最重要,最常用的方法。在特征级融合中,保证不同图像包含

5、信息的特征,如对于对象热量的表征,可见光对于对象亮度的表征等等。决策级融合主要在于主观的要求,同样也有一些规则,如法,D-S和表决法等。融合算法常结合图像的平均值、熵值、平均梯度;平均梯度反映了图像中的微小细节反差与纹理变化特征,同时也反映了图像的清晰度。目前对图像融合存在两个问题:最佳小波基函数的选取和最佳小波分解层数的选取。关键字:信号级、像素级、特征级,决策级。 目录专心-专注-专业1.概述图像融合(Image Fusion)是指将多源信道所采集到的关于同一目标的图像数据经过图像处理和等,最大限度的提取各自信道中的有利信息,最后综合成高质量的图像,以提高图像信息的利用率、改善计算机解译精

6、度和可靠性、提升原始图像的和光谱分辨率,利于监测。 待融合图像已配准好且像素位宽一致。图像融合是指将多源按照一定的算法,在规定的,生成新的图像的过程。图像融合技术是指将多源信道所采集到的关于同一目标的图像经过一定的图像处理,提取各自信道的信息,最后综合成同一图像以供观察或进一步处理。将多源信道所采集到的关于同一目标的图像数据经过图像处理和计算机技术等,最大限度的提取各自信道中的有利信息,最后综合成高质量的图像,以提高图像信息的利用率、改善计算机解译精度和可靠性、提升原始图像的空间分辨率和光谱分辨率,利于监测。 待融合图像已配准好且像素位宽一致,综合和提取两个或多个多源图像信息。1.1图像融合高

7、效的图像融合方法可以根据需要综合处理多源通道的信息,从而有效地提高了图像信息的利用率、系统对目标探测识别地可靠性及系统的自动化程度。其目的是将单一传感器的多波段信息或不同类传感器所提供的信息加以综合,消除多传感器信息之间可能存在的冗余和矛盾,以增强影像中信息透明度,改善解译的精度、可靠性以及使用率,以形成对目标的清晰、完整、准确的信息描述。这诸多方面的优点使得图像融合在医学、遥感、及军事目标识别等方面的应用潜力得到充分认识、尤其在计算机视觉方面,图像融合被认为是克服目前某些难点的技术方向;在航天、航空多种运载平台上,各种遥感器所获得的大量光谱遥感图像(其中分辨率差别、差别可能很大)的复合融合,

8、为信息的高效提取提供了良好的处理手段,取得明显效益。图像融合就是通过一种特定算法将两幅或多幅图像合成为一幅新图像。该技术有基本的体系,主要包括的内容有:图像预处理,图像融合算法,图像融合评价,融合结果。图像融合系统的层次划分为:像素层融合、特征层融合、决策层融合,目前绝大多数融合算法研究都集中在这一层次上。图像预处理技术主要包括两个方面的任务:图像去噪、图像配准;图像融合算法从最初简单的融合算法(加权、最大值法)发展为复杂多分辨率的算法(金字塔、小波法等);图像融合的性能评价主要有两个大的方面:主观评价及客观评价,由于在实际中不存在理想图源,所以一般采用较易实现的评价标准,结合主观视觉给出最合

9、理的评价。1.2图像融合发展概况1.2.1图像融合技术发展过程美国是信息融合技术研究起步比较早、发展最快的国家。图像融合技术作为信息融合的一个重要方向,最早是应用于遥感图像的分析和处理。1979年,Daly等人首先把雷达图像和MSS复合图像应用于地质分析,它的处理过程可以看做事最简单的图像融合;1981年,laner等人进行了landsat-RBV和MSS图像信息的融合试验。到80年代中后期,图像融合技术渐渐引起人们的关注,接着便有人将图像融合技术应用于遥感多普图像的分析和处理,例如1985年,bonn博士将多光谱遥感图像与spot卫星得到的高分辨率图像进行融合,90年代以后,随着多颗遥感雷达

10、卫星JERS-1,ERS-1等的升空,图像融合技术便成为遥感图像处理和分析中的研究热点。目前图像融合技术显示出上升趋势,通过图像融合技术可以改善和提高图像信息的分析和提取能力,然后应用于遥感图像处理,计算机视觉,自动检测,城市规划,交通管制,机器人技术,决策支持系统,大型经济信息,医学图像处理等多个领域。可以相信,随着对多元图像融合技术研究的不断深入,图像融合技术必将得到更为广泛的应用和发展。在国外,显微融合技术上的研究已经趋于成熟和实用化,这些国外的显微融合技术在图像融合的效果和速度上都已达到了一定的水准,但是他们价格极其昂贵并且技术上不对外开放。1.2.2图像融合主要特点信号级在最低层对未

11、经处理的传感器输出在信号域进行混合,产生一个融合后的信号。融合后的信号与源信号形式相同但品质更好,来自传感器的信号可建模为混有不同相关噪声的随机变量。此种情况下,融合可以考虑为一种估计过程,信号级图像融合在很大程度上是信号的最优集中或分布检测问题,对信号时间和空间上的配准要求最高。像素级图像融合是三个层次中最基本的融合,经过像素级图像融合以后得到的图像具有更多的细节信息,如边缘、纹理的提取,有利于图像的进一步分析、处理与理解,还能够把潜在的目标暴露出来,利于判断识别潜在的目标像素点的操作,这种方法才可以尽可能多的保存源图像中的信息,使得融合后的图片不论是内容还是细节都有所增加,这个优点是独一无

12、二的,仅存在于像素级融合中。但像素级图像融合的局限性也是不能忽视的,由于它是对像素点进行操作,所以计算机就要对大量的数据进行处理,处理时所消耗的时间会比较长,就不能够及时地将融合后图像显示出来,无法实现实时处理;另外在进行数据通信时,信息量较大,容易受到噪声的影响;还有如果没有将图片进行严格的配准就直接参加图像融合,会导致融合后的图像模糊,目标和细节不清楚、不精确.特征级图像融合是从源图像中将特征信息提取出来,这些特征信息是观察者对源图像中目标或感兴趣的区域,如边缘、人物、建筑或车辆等信息,然后对这些特征信息进行分析、处理与整合从而得到融合后的图像特征。对融合后的特征进行目标识别的精确度明显的

13、高于原始图像的精确度。特征级融合对图像信息进行了压缩,再用计算机分析与处理,所消耗的内存与时间与像素级相比都会减少,所需图像的实时性就会有所提高。特征级图像融合对图像匹配的精确度的要求没有第一层那么高,计算速度也比第一层快,可是它提取图像特征作为融合信息,所以会丢掉很多的细节性特征。决策级图像融合是以认知为基础的方法,它不仅是最高层次的图像融合方法,抽象等级也是最高的。决策级图像融合是有针对性的,根据所提问题的具体要求,将来自特征级图像所得到的特征信息加以利用,然后根据一定的准则以及每个决策的可信度(目标存在的概率)直接作出最优决策。三个融合层级中,决策级图像融合的计算量是最小的,可是这种方法

14、对前一个层级有很强的依赖性,得到的图像与前两种融合方法相比不是很清晰。将决策级图像融合实现起来比较困难,但图像传输时噪声对它的影响最小。综合以上,研究和应用最多的是像数级图像融合,目前提出的绝大多数的图像融合算法均属于该层次上的融合。图像融合狭义上指的就是像数级图像融合。本文研究的也正是像素级图像融合算法。像素级融合是最低层次的融合,也是后两级的基础。它是将各原图像中对应的像素进行融合处理,保留了尽可能多的图像信息, 精度比较高, 因而倍受人们的重视。1.3图像融合技术原理及意义拉普拉斯金字塔融合图像金字塔方法的原理是:将参加融合的的每幅图像分解为多尺度的金字塔图像序列,将低分辨率的图像在上层

15、,高分辨率的图像在下层,上层图像的大小为前一层图像大小的1/4。层数为0,1,2N。将所有图像的金字塔在相应层上以一定的规则融合,就可得到合成金字塔,再将该合成金字塔按照金字塔生成的逆过程进行重构,得到融合金字塔。这个总的思路就是一下所有基于金字塔融合的算法过程,不同点就在于分解构造的金字塔不同,每层的融合规则不一样,重构的方法不同而已。金字塔方法最先实现了这种思想,之后小波方法进一步完善和发展了这种多尺度融和的思想。2.软件工具Delphi72.1 Delphi概述由Borland公司推出的Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用

16、了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复 。利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的编译器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现编程不再是枯燥无味的工作Delphi的每一个设计细节,都将带给您一份欣喜。Delphi是第四代编程语言,是RAD(Rapid Application Development,快速应用程序开发)工具的代表。从核心 上说,Delphi是一个Pascal编译器。Delp

17、hi语言的发展历 程如下:从1995年的Delphi 1.0到1998年的Delphi 4.0四个版本, Borland放弃了OWL,取而带之的是全新的Visual Component Library,从此开始了组件(Component)技 术的时代 ,通过不断的改进和完善增加了数据库和客户端/ 服务器的功能、 Code Insight(代码内视)、Module Explore(模块导航)等许多新技术与Delphi 以前的版本 相比, Delphi 5是32位的应用开发环境。它具有一系列 新特性以满足应用程序开发过程中的各种需求。如改进的 集成开发环境、强劲的工程管理功能、先进的调试技术、 扩

18、展的语言特性以及其强大的数据库应用程序开发能力。DELPHI 拥有一个可视化的集成开发环境(IDE),采用面向对象的编程语言ObjectPascal和基于部件的开发结构框架。Delphi它提供了500多个可供使用的构件,利用这些部件,开发人员可以快速地构造出应用系统。开发人员也可以根据自己的需要修改部件或用Delphi本身编写自己的部件。主要特点如下: (1)直接编译生成可执行代码,编译速度快。由于Delphi编译器采用了条件编译和选择链接技术,使用它生成的执行文件更加精炼,运行速度更快。在处理速度和存取服务器方面,Delphi的性能远远高于其他同类产品。 (2)支持将存取规则分别交给客户机或

19、服务器处理的两种方案,而且允许开发人员建立一个简单的部件或部件集合,封装起所有的规则,并独立于服务器和客户机,所有的数据转移通过这些部件来完成。这样,大大减少了对服务器的请求和网络上的数据传输量,提高了应用处理的速度。 (3)提供了许多快速方便的开发方法,使开发人员能用尽可能少的重复性工作完成各种不同的应用。利用项目模板和专家生成器可以很快建立项目的构架,然后根据用户的实际需要逐步完善。 (4)具有可重用性和可扩展性。开发人员不必再对诸如标签、按钮及对话框等Windows的常见部件进行编程。Delphi包含许多可以重复使用的部件,允许用户控制Windows的开发效果。 (5)具有强大的数据存取

20、功能。它的数据处理工具BDE(BorlandDatabaseEngine)是一个标准的中介软件层,可以用来处理当前流行的数据格式,如xBase、Paradox等,也可以通过BDE的SQLLink直接与Sybase、SQLServer、Informix、Oracle等大型数据库连接。 Delphi既可用于开发系统软件,也适合于应用软件的开发。(6)拥有强大的网络开发能力,能够快速的开发B/S应用,它内置的IntraWeb和ExpressWeb使得对于网络的开发效率超过了其他任何的开发工具。(7)Delphi使用独特的VCL类库,使得编写出的程序显得条理清晰,VCL是现在最优秀的类库,它使得Del

21、phi在软件开发行业处于一个绝对领先的地位。用户可以按自己的需要,任意的构建、扩充、甚至是删减VCL,以满足不同的需要。 (8)从Delphi8开始Delphi也支持.Net框架下程序开发。当前DELPHI 已经成为一个品牌,而不仅仅是一个开发平台或开发语言的名称。 当前DELPHI产品已经由CodeGear公司继续发展,该公司是BORLAND公司的全资子公司。当前,CodeGear为广大开发者提供了DELPHI FOR PHP,以高度可视化的方式全面支持面向对象的PHP 网站开发,大大提高了PHP开发网站的代码复用程度,成为WEB应用开发的新利器。2.2 主界面为:3.图像融合方法高斯金字塔

22、是最基本的图像塔。首先将原图像作为最底层图像G0(高斯金字塔的第0层),利用高斯核(5*5)对其进行卷积,然后对卷积后的图像进行下采样(去除偶数行和列)得到上一层图像G1,将此图像作为输入,重复卷积和下采样操作得到更上一层图像,反复迭代多次,形成一个金字塔形的图像数据结构,即高斯金字塔。在高斯金字塔的运算过程中,图像经过卷积和下采样操作会丢失部分高频细节信息。为描述这些高频信息,人们定义了拉普拉斯金字塔(Laplacian Pyramid, LP)。用高斯金字塔的每一层图像减去其上一层图像上采样并高斯卷积之后的预测图像,得到一系列的差值图像即为 LP 分解图像。N为拉普拉斯金字塔顶层的层号LP

23、l是拉普拉斯金字塔分解的第L层图像。由LP0,LP1、LP2LPN构成的金字塔即为拉普拉斯金字塔。它的每一层L0图像是高斯金字塔本层G0图像与其高一层图像G1经内插放大后图像*G1的差,此过程相当于带通滤波,因此拉普拉斯金字塔又称为带通金字塔分解。内插方法:opencv中有实现的函数pyrup。可以得到*G1。然后在两个函数作差,相减就可以得到拉普拉斯金字塔。求得每个图像的拉普拉斯金字塔后需要对相应层次的图像进行融合,具体的融合规则有,取大、取小,等等。对融合后的拉普拉斯金字塔,从其顶层开始逐层从上至下按下式进行递推,可以恢复其对应的高斯金字塔,并最终可得到原图像G0。就是从最高层开始使用内插

24、的方法。图像拉普拉斯金字塔分解的目的是将源图像分别分解到不同的空间频带上,融合过程是在各空间频率层上分别进行的,这样就可以针对不同分解层的不同频带上的特征与细节,采用不同的融合算子以达到突出特定频带上特征与细节的目的。即有可能将来自不同图像的特征与细节融合在一起。采用最高层系数取平均,其余各层系数绝对值取大的融合策略进行融合。融合后图像的系数(灰度值)越接近较清晰图像的灰度值就说明融合效果好。4.成果展示首页:打开图像:图像融合:清除图像:图像平移:帮助页面:5.总结通过此次课程设计,使我更加扎实的掌握了有关方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终

25、于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,

26、也永远不可能得到社会及他人对你的认可!课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我熟悉了图像融合过程;了解了图像融合的方法;以及如何提高图像融合的性能等等,掌握了图像融合的方法和技术,通过查询资料,也了解了图像融合原理。我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的

27、学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独

28、立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。课程设计即将完成,本次课程设计我最想感谢,最应该感谢的是蒋先刚老师,如果不是蒋老师指导,我想我可能不能这么顺利完成。经过大三下这一个学期学习蒋老师的课程,令我受益匪浅!6.参考文献1 A Hashizume, P

29、 S Yeh, A Rosenfeld. A Method of Detecting the Orientation of Aligned ComponentsJ. Pattern Recognition Letters, 1986,4:125132.2 L.OGorman. The Document Spectrum for Page Layout Analysis. IEEE Transactions. PAMI, Vol.15,No.11, 1993:pp.11621173.3 Procedural Elements for Computer Graphics, Second Editi

30、on (美)(Rogers,D.F) 北京:机械工业出版社,2002.24 A Piva, M Barni,F Bartolini, V Cappellini. DCT-based watermark recovering without resorting to the uncorrupted original imageA.Proceedings of 4th IEEE International Conference on Image Processing ICIP97C.Santa Barbara,CA,USA:ICIP,1997.5 Zhong wei.Image watermark

31、ing using Legendre arrayJ.Journal of china institute of communications,2001,22(1):16.6 潘梅森,荣秋生.SOFM神经网络的图像融合的二值化方法J.光学精密工程,2007,15(3):99104.7 潘梅森,易明.一种基于人类视觉的自适应均值滤波算法J.计算机工程与应用,2006,42(10):6264.8 王建卫.彩色图像的中值滤波算法的改进与应用J.哈尔滨商业大学大学报:自然科学版.2006,22(4):6769. 7.附录unit Unit2;interfaceuses Windows, Messages

32、, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls; type TForm2 = class(TForm) BitBtn1: TBitBtn; Label1: TLabel; Image1: TImage; Timer1: TTimer; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure FormCreate(Sender: TObject); procedure FormPaint(Send

33、er: TObject); procedure BitBtn1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); private Private declarations public Public declarations end;var Form2: TForm2; step:integer;implementation$R *.dfm uses chapter3;procedure TForm2.FormCreate(Sender: TObject);begin/MediaPlayer1.FileName:=lz

34、.mp3;/MediaPlayer1.open;/MediaPlayer1.Play;step:=0;image1.Canvas.FillRect(rect(0,0,image1.width,image1.height);image1.Canvas.Brush.Style:=bsclear;image1.Canvas.Font.Size:=28;image1.Canvas.Font.Color:=clskyblue;image1.Canvas.TextOut(17,16, );image1.Canvas.Font.Color:=clblack;image1.Canvas.TextOut(17,

35、16, );end; procedure N19Click(Sender: TObject); procedure N20Click(Sender: TObject); procedure method1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure method2Click(Sender: TObject); procedure ZoomInClick(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Zoom

36、OutClick(Sender: TObject); procedure TiltClick(Sender: TObject); procedure method3Click(Sender: TObject); procedure N8Click(Sender: TObject); procedure N9Click(Sender: TObject); procedure WrapClick(Sender: TObject); procedure twistClick(Sender: TObject); procedure RotateangleClick(Sender: TObject);

37、procedure N3Click(Sender: TObject); procedure cutClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure N14Click(Sender: TObject); procedure N10Click(Sender: TObject); procedure N12Click(Sender: TObject); procedure N15Click(Sender:

38、 TObject); procedure N13Click(Sender: TObject); procedure N16Click(Sender: TObject); procedure N18Click(Sender: TObject); procedure N17Click(Sender: TObject); procedure FormPaint(Sender: TObject); procedure N21Click(Sender: TObject); procedure change(sender:Tobject); procedure TrackBar1Change(Sender

39、: TObject); procedure N23Click(Sender: TObject); procedure Image1Click(Sender: TObject); private procedure RotateMethod2(aBitmap: TBitmap); procedure TiltBitmap(const InBitmap, OutBitmap: TBitmap; const WidthTop, WidthBottom: integer); procedure RotateMethod3(Bitmap: TBitmap); procedure bmp_rotate(S

40、rcbmp, DestBmp: Tbitmap; angle: extended); procedure TwistPicture(var Bmp, Dst: TBitmap; Amount: integer); procedure WaveWrap(XDIV, YDIV, RatioVal: Integer); procedure LeftRightMirror(bitmap: TBitmap); procedure ZoomInOut(bitmap: TBitmap; m, n: extended); Private declarations public Public declarati

41、ons end;var Form1: TForm1; starttime, endtime: longint; OriginalBmp: TBitmap;implementationuses Unit3;$R *.dfmprocedure TForm1.N19Click(Sender: TObject);begin if OpenPictureDialog1.Execute then image1.Picture.Bitmap.LoadFromFile(OpenPictureDialog1.FileName); OriginalBmp.Assign(image1.Picture.Bitmap)

42、; Image1.Top := self.Height div 2 - Image1.Picture.Bitmap.Height div 2; Image1.Left := self.Width div 2 - Image1.Picture.Bitmap.Width div 2;end;procedure TForm1.RotateMethod2(aBitmap: TBitmap);var nIdx, nOfs, x, y, i, nMultiplier: integer; nMemWidth, nMemHeight, nMemSize, nScanLineSize: LongInt; aSc

43、nLnBuffer: PChar; aScanLine: PByteArray;begin /消耗时间 nMultiplier := 3; nMemWidth := aBitmap.Height; nMemHeight := aBitmap.Width; /实际需要内存大小 nMemSize := nMemWidth * nMemHeight * nMultiplier; /开辟内存 GetMem(aScnLnBuffer, nMemSize); try /Scanline的长度 nScanLineSize := aBitmap.Width * nMultiplier; /为ScanLine分

44、配内存 GetMem(aScanLine, nScanLineSize); try for y := 0 to aBitmap.Height - 1 do begin /进行数据块的移动 Move(aBitmap.ScanLiney, aScanLine, nScanLineSize); for x := 0 to aBitmap.Width - 1 do begin nIdx := (aBitmap.Width - 1) - x) * nMultiplier; nOfs := (x * nMemWidth * nMultiplier) + (y * nMultiplier); for i :

45、= 0 to nMultiplier - 1 do Byte(aScnLnBuffernOfs + i) := aScanLinenIdx + i; end; end; /宽和高交换开始,逆时针旋转 aBitmap.Height := nMemHeight; aBitmap.Width := nMemWidth; for y := 0 to nMemHeight - 1 do begin /数据移动 nOfs := y * nMemWidth * nMultiplier; Move(aScnLnBuffernOfs), aBitmap.ScanLiney, nMemWidth * nMultiplier); end; finally /释放内存aScanLine FreeMem(aScanLine, nScanLineSize); end; finally /释放内存aScnLnBuffer FreeMem(aScnLnBuffer,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁