计算机图形学专业课程设计项目说明书.doc
《计算机图形学专业课程设计项目说明书.doc》由会员分享,可在线阅读,更多相关《计算机图形学专业课程设计项目说明书.doc(30页珍藏版)》请在咨信网上搜索。
课程设计(论文)任务书 理 学 院 信息和计算科学 专 业 -1 班 一、课程设计(论文)题目: 图像融合程序设计 二、课程设计(论文)工作: 自 年 1 月 10 日起至 年 1 月 12日止 三、课程设计(论文) 地点: 2-201 四、课程设计(论文)内容要求: 1.本课程设计目标 (1)熟悉Delphi7使用,理论和实际应用相结合,养成良好程序设计技能; (2)了解并掌握图像融合多种实现方法,含有初步独立分析和设计能力; (3)初步掌握开发过程中问题分析,程序设计,代码编写、测试等基础方法; (4)提升综合利用所学理论知识和方法独立分析和处理问题能力; (5)在实践中认识、学习计算机图形学相关知识。 2.课程设计任务及要求 1)基础要求: (1)研究课程设计任务,并进行程序需求分析; (2)对程序进行总体设计,分解系统功效模块,进行任务分配,以实现分工合作; (3)实现各功效模块代码; (4)程序组装,测试、完善系统。 2)创新要求: 在基础要求达成后,可进行创新设计,如改善界面、增加功效或进行代码优化。 3)课程设计论文编写要求 (1)要根据书稿规格打印誊写课程设计论文 (2)论文包含封面、设计任务书(含评语)、摘要、目录、设计内容、设计小结 (3)论文装订按学校统一要求完成 4)参考文件: (1)David F.Rogers,《计算机图形学算法基础》,机械工业出版社 (2)Steve Cunningham,《计算机图形学》,机械工业出版社 (3) 5)课程设计进度安排 内容 天数 地点 程序总体设计 1 试验室 软件设计及调试 1 试验室 答辩及撰写汇报 1 试验室、图书馆 学生署名: 1月12日 摘要 图像融合是图像处理中关键部分,能够协同利用同一场景多个传感器图像信息,输出一幅更适合于人类视觉感知或计算机深入处理和分析融合图像。它可显著改善单一传感器不足,提升结果图像清楚度及信息包含量,有利于更为正确、更为可靠、更为全方面地获取目标或场景信息。图像融合关键应用于军事国防上、遥感方面、医学图像处理、机器人、安全和监控、生物监测等领域。用于较多也较成熟是红外和可见光融合,在一副图像上显示多个信息,突出目标。通常情况下,图像融合由低到高分为三个层次:数据级融合、特征级融合、决议级融合。数据级融合也称像素级融合,是指直接对传感器采集来得数据进行处理而取得融合图像过程,它是高层次图像融合基础,也是现在图像融合研究关键之一。这种融合优点是保持尽可能多得现场原始数据,提供其它融合层次所不能提供细微信息。像素级融合中有空间域算法和变换域算法,空间域算法中又有多个融合规则方法,如逻辑滤波法,灰度加权平均法,对比调制法等;变换域中又有金字塔分解融正当,小波变换法。其中小波变换是目前最关键,最常见方法。在特征级融合中,确保不一样图像包含信息特征,如红外光对于对象热量表征,可见光对于对象亮度表征等等。决议级融合关键在于主观要求,一样也有部分规则,如贝叶斯法,D-S证据法和表决法等。融合算法常结合图像平均值、熵值、标准偏差、平均梯度;平均梯度反应了图像中微小细节反差和纹理改变特征,同时也反应了图像清楚度。现在对图像融合存在两个问题:最好小波基函数选择和最好小波分解层数选择。 关键字:信号级、像素级、特征级,决议级。 目录 1.绪论 1 1.1图像融合 1 1.2图像融合技术介绍和发展概况 2 1.3图像融合技术原理及意义 3 2.软件工具—DELPHI7 4 2.1 Delphi概述 4 2.2 主界面为: 5 3.图像融合方法 5 4.结果展示 5 5.致谢 5 6.参考文件 6 7.附录 7 1.概述 图像融合(Image Fusion)是指将多源信道所采集到相关同一目标图像数据经过图像处理和计算机技术等,最大程度提取各自信道中有利信息,最终综合成高质量图像,以提升图像信息利用率、改善计算机解译精度和可靠性、提升原始图像空间分辨率和光谱分辨率,利于监测。 待融合图像已配准好且像素位宽一致。 图像融合是指将多源遥感图像根据一定算法,在要求地理坐标系,生成新图像过程。 图像融合技术是指将多源信道所采集到相关同一目标图像经过一定图像处理,提取各自信道信息,最终综合成同一图像以供观察或深入处理。将多源信道所采集到相关同一目标图像数据经过图像处理和计算机技术等,最大程度提取各自信道中有利信息,最终综合成高质量图像,以提升图像信息利用率、改善计算机解译精度和可靠性、提升原始图像空间分辨率和光谱分辨率,利于监测。 待融合图像已配准好且像素位宽一致,综合和提取两个或多个多源图像信息。 1.1图像融合 高效图像融合方法能够依据需要综合处理多源通道信息,从而有效地提升了图像信息利用率、系统对目标探测识别地可靠性及系统自动化程度。其目标是将单一传感器多波段信息或不一样类传感器所提供信息加以综合,消除多传感器信息之间可能存在冗余和矛盾,以增强影像中信息透明度,改善解译精度、可靠性和使用率,以形成对目标清楚、完整、正确信息描述。这很多方面优点使得图像融合在医学、遥感、计算机视觉、气象预报及军事目标识别等方面应用潜力得到充足认识、尤其在计算机视觉方面,图像融合被认为是克服现在一些难点技术方向;在航天、航空多个运载平台上,多种遥感器所取得大量光谱遥感图像(其中分辨率差异、灰度等级差异可能很大)复合融合,为信息高效提取提供了良好处理手段,取得显著效益。图像融合就是经过一个特定算法将两幅或多幅图像合成为一幅新图像。该技术有基础体系,关键包含内容有:图像预处理,图像融合算法,图像融合评价,融合结果。图像融合系统层次划分为:像素层融合、特征层融合、决议层融合,现在绝大多数融合算法研究全部集中在这一层次上。图像预处理技术关键包含两个方面任务:图像去噪、图像配准;图像融合算法从最初简单融合算法(加权、最大值法)发展为复杂多分辨率算法(金字塔、小波法等);图像融合性能评价关键有两个大方面:主观评价及客观评价,因为在实际中不存在理想图源,所以通常采取较易实现评价标准,结合主观视觉给出最合理评价。 1.2图像融合发展概况 1.2.1图像融合技术发展过程 美国是信息融合技术研究起步比较早、发展最快国家。图像融合技术作为信息融合一个关键方向,最早是应用于遥感图像分析和处理。1979年,Daly等人首先把雷达图像和MSS复合图像应用于地质分析,它处理过程能够看做事最简单图像融合;1981年,laner等人进行了landsat-RBV和MSS图像信息融合试验。到80年代中后期,图像融合技术逐步引发大家关注,接着便有些人将图像融合技术应用于遥感多普图像分析和处理,比如1985年,bonn博士将多光谱遥感图像和spot卫星得到高分辨率图像进行融合,90年代以后,伴随多颗遥感雷达卫星JERS-1,ERS-1等升空,图像融合技术便成为遥感图像处理和分析中研究热点。 现在图像融合技术显示出上升趋势,经过图像融合技术能够改善和提升图像信息分析和提取能力,然后应用于遥感图像处理,计算机视觉,自动检测,城市计划,交通管制,机器人技术,决议支持系统,大型经济信息,医学图像处理等多个领域。能够相信,伴随对多元图像融合技术研究不停深入,图像融合技术必将得到更为广泛应用和发展。在国外,显微融合技术上研究已经趋于成熟和实用化,这些国外显微融合技术在图像融合效果和速度上全部已达成了一定水准,不过她们价格极其昂贵而且技术上不对外开放。 1.2.2图像融合关键特点 信号级在最低层对未经处理传感器输出在信号域进行混合,产生一个融合后信号。融合后信号和源信号形式相同但品质愈加好,来自传感器信号可建模为混有不一样相关噪声随机变量。此种情况下,融合能够考虑为一个估量过程,信号级图像融合在很大程度上是信号最优集中或分布检测问题,对信号时间和空间上配准要求最高。 像素级图像融合是三个层次中最基础融合,经过像素级图像融合以后得到图像含有更多细节信息,如边缘、纹理提取,有利于图像深入分析、处理和了解,还能够把潜在目标暴露出来,利于判定识别潜在目标像素点操作,这种方法才能够尽可能多保留源图像中信息,使得融合后图片不管是内容还是细节全部有所增加,这个优点是独一无二,仅存在于像素级融合中。但像素级图像融合不足也是不能忽略,因为它是对像素点进行操作,所以计算机就要对大量数据进行处理,处理时所消耗时间会比较长,就不能够立即地将融合后图像显示出来,无法实现实时处理;另外在进行数据通信时,信息量较大,轻易受到噪声影响;还有假如没有将图片进行严格配准就直接参与图像融合,会造成融合后图像模糊,目标和细节不清楚、不正确. 特征级图像融合是从源图像中将特征信息提取出来,这些特征信息是观察者对源图像中目标或感爱好区域,如边缘、人物、建筑或车辆等信息,然后对这些特征信息进行分析、处理和整合从而得到融合后图像特征。对融合后特征进行目标识别正确度显著高于原始图像正确度。特征级融合对图像信息进行了压缩,再用计算机分析和处理,所消耗内存和时间和像素级相比全部会降低,所需图像实时性就会有所提升。特征级图像融合对图像匹配正确度要求没有第一层那么高,计算速度也比第一层快,可是它提取图像特征作为融合信息,所以会丢掉很多细节性特征。 决议级图像融合是以认知为基础方法,它不仅是最高层次图像融合方法,抽象等级也是最高。决议级图像融合是有针对性,依据所提问题具体要求,未来自特征级图像所得到特征信息加以利用,然后依据一定准则和每个决议可信度(目标存在概率)直接作出最优决议。三个融合层级中,决议级图像融合计算量是最小,可是这种方法对前一个层级有很强依靠性,得到图像和前两种融合方法相比不是很清楚。将决议级图像融合实现起来比较困难,但图像传输时噪声对它影响最小。 综合以上,研究和应用最多是像数级图像融合,现在提出绝大多数图像融合算法均属于该层次上融合。图像融合狭义上指就是像数级图像融合。本文研究也正是像素级图像融合算法。像素级融合是最低层次融合,也是后两级基础。它是将各原图像中对应像素进行融合处理,保留了尽可能多图像信息, 精度比较高, 所以倍受大家重视。 1.3图像融合技术原理及意义 拉普拉斯金字塔融合图像金字塔方法原理是:将参与融合每幅图像分解为多尺度金字塔图像序列,将低分辨率图像在上层,高分辨率图像在下层,上层图像大小为前一层图像大小1/4。层数为0,1,2……N。将全部图像金字塔在对应层上以一定规则融合,就可得到合成金字塔,再将该合成金字塔根据金字塔生成逆过程进行重构,得到融合金字塔。这个总思绪就是一下全部基于金字塔融合算法过程,不一样点就在于分解结构金字塔不一样,每层融合规则不一样,重构方法不一样而已。金字塔方法最先实现了这种思想,以后小波方法深入完善和发展了这种多尺度融和思想。 2.软件工具—Delphi7 2.1 Delphi概述 由Borland企业推出Delphi是全新可视化编程环境,为我们提供了一个方便、快捷Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面很多优异特征和设计思想,采取了弹性可反复 。利用完整面向对象程序语言(Object-Oriented Language)、当今世界上最快编译器、最为领先数据库技术。对于广大程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提升编程效率,而且伴随应用深入,您将会发觉编程不再是枯燥无味工作——Delphi每一个设计细节,全部将带给您一份欣喜。Delphi是第四代编程语言,是RAD(Rapid Application Development,快速应用程序开发)工具代表。从关键 上说,Delphi是一个Pascal编译器。Delphi语言发展历 程以下:从1995年Delphi 1.0到1998年Delphi 4.0四个版本, Borland放弃了OWL,取而带之是全新Visual Component Library,以后开始了组件(Component)技 术时代 ,经过不停改善和完善增加了数据库和用户端/ 服务器功效、 Code Insight(代码内视)、Module Explore(模块导航)等很多新技术和Delphi 以前版本 相比, Delphi 5是32位应用开发环境。它含有一系列 新特征以满足应用程序开发过程中多种需求。如改善 集成开发环境、强劲工程管理功效、优异调试技术、 扩展语言特征和其强大数据库应用程序开发能力。DELPHI 拥有一个可视化集成开发环境(IDE),采取面向对象编程语言ObjectPascal和基于部件开发结构框架。Delphi它提供了500多个可供使用构件,利用这些部件,开发人员能够快速地结构出应用系统。开发人员也能够依据自己需要修改部件或用Delphi本身编写自己部件。关键特点以下: (1)直接编译生成可实施代码,编译速度快。因为Delphi编译器采取了条件编译和选择链接技术,使用它生成实施文件愈加精炼,运行速度愈加快。在处理速度和存取服务器方面,Delphi性能远远高于其它同类产品。 (2)支持将存取规则分别交给用户机或服务器处理两种方案,而且许可开发人员建立一个简单部件或部件集合,封装起全部规则,并独立于服务器和用户机,全部数据转移经过这些部件来完成。这么,大大降低了对服务器请求和网络上数据传输量,提升了应用处理速度。 (3)提供了很多快速方便开发方法,使开发人员能用尽可能少反复性工作完成多种不一样应用。利用项目模板和教授生成器能够很快建立项目标构架,然后依据用户实际需要逐步完善。 (4)含有可重用性和可扩展性。开发人员无须再对诸如标签、按钮及对话框等Windows常见部件进行编程。Delphi包含很多能够反复使用部件,许可用户控制Windows开发效果。 (5)含有强大数据存取功效。它数据处理工具BDE(BorlandDatabaseEngine)是一个标准中介软件层,能够用来处理目前流行数据格式,如xBase、Paradox等,也能够经过BDESQLLink直接和Sybase、SQLServer、Informix、Oracle等大型数据库连接。 Delphi既可用于开发系统软件,也适合于应用软件开发。 (6)拥有强大网络开发能力,能够快速开发B/S应用,它内置IntraWeb和ExpressWeb使得对于网络开发效率超出了其它任何开发工具。 (7)Delphi使用独特VCL类库,使得编写出程序显得条理清楚,VCL是现在最优异类库,它使得Delphi在软件开发行业处于一个绝对领先地位。用户能够按自己需要,任意构建、扩充、甚至是删减VCL,以满足不一样需要。 (8)从Delphi8开始Delphi也支持.Net框架下程序开发。 目前DELPHI 已经成为一个品牌,而不仅仅是一个开发平台或开发语言名称。 目前DELPHI产品已经由CodeGear企业继续发展,该企业是BORLAND企业全资子企业。目前,CodeGear为广大开发者提供了DELPHI FOR PHP,以高度可视化方法全方面支持面向对象PHP 网站开发,大大提升了PHP开发网站代码复用程度,成为WEB应用开发新利器。 2.2 主界面为: 3.图像融合方法 高斯金字塔是最基础图像塔。首先将原图像作为最底层图像G0(高斯金字塔第0层),利用高斯核(5*5)对其进行卷积,然后对卷积后图像进行下采样(去除偶数行和列)得到上一层图像G1,将此图像作为输入,反复卷积和下采样操作得到更上一层图像,反复迭代数次,形成一个金字塔形图像数据结构,即高斯金字塔。在高斯金字塔运算过程中,图像经过卷积和下采样操作会丢失部分高频细节信息。为描述这些高频信息,大家定义了拉普拉斯金字塔(Laplacian Pyramid, LP)。用高斯金字塔每一层图像减去其上一层图像上采样并高斯卷积以后估计图像,得到一系列差值图像即为 LP 分解图像。N为拉普拉斯金字塔顶层层号LPl是拉普拉斯金字塔分解第L层图像。由LP0,LP1、LP2…LPN组成金字塔即为拉普拉斯金字塔。它每一层L0图像是高斯金字塔本层G0图像和其高一层图像G1经内插放大后图像*G1差,此过程相当于带通滤波,所以拉普拉斯金字塔又称为带通金字塔分解。内插方法:opencv中有实现函数pyrup。能够得到*G1。然后在两个函数作差,相减就能够得到拉普拉斯金字塔。求得每个图像拉普拉斯金字塔后需要对对应层次图像进行融合,具体融合规则有,取大、取小,等等。对融合后拉普拉斯金字塔,从其顶层开始逐层从上至下按下式进行递推,能够恢复其对应高斯金字塔,并最终可得到原图像G0。就是从最高层开始使用内插方法。图像拉普拉斯金字塔分解目标是将源图像分别分解到不一样空间频带上,融合过程是在各空间频率层上分别进行,这么就能够针对不一样分解层不一样频带上特征和细节,采取不一样融合算子以达成突出特定频带上特征和细节目标。即有可能未来自不一样图像特征和细节融合在一起。采取最高层系数取平均,其它各层系数绝对值取大融合策略进行融合。融合后图像系数(灰度值)越靠近较清楚图像灰度值就说明融合效果好。 4.结果展示 首页: 打开图像: 图像融合: 清除图像: 图像平移: 帮助页面: 5.总结 经过此次课程设计,使我愈加扎实掌握了相关方面知识,在设计过程中即使碰到了部分问题,但经过一次又一次思索,一遍又一遍检验最终找出了原因所在,也暴露出了前期我在这方面知识欠缺和经验不足。实践出真知,经过亲自动手制作,使我们掌握知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不停发觉错误,不停更正,不停领悟,不停获取。最终检测调试步骤,本身就是在践行“过而能改,善莫大焉”知行观。这次课程设计最终顺利完成了,在设计中碰到了很多问题,最终在老师指导下,最终游逆而解。在以后社会发展和学习实践过程中,一定要不懈努力,不能碰到问题就想到要退缩,一定要不厌其烦发觉问题所在,然后一一进行处理,只有这么,才能成功做成想做事,才能在以后道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及她人对你认可!课程设计诚然是一门专业课,给我很多专业知识和专业技能上提升,同时又是一门讲道课,一门辩思课,给了我很多道,给了我很多思,给了我莫大空间。同时,设计让我感慨很深。使我对抽象理论有了具体认识。经过这次课程设计,我熟悉了图像融合过程;了解了图像融合方法;和怎样提升图像融合性能等等,掌握了图像融合方法和技术,经过查询资料,也了解了图像融合原理。我认为,在这学期试验中,不仅培养了独立思索、动手操作能力,在多种其它能力上也全部有了提升。更关键是,在试验课上,我们学会了很多学习方法。而这是以后最实用,真是受益匪浅。要面对社会挑战,只有不停学习、实践,再学习、再实践。这对于我们未来也有很大帮助。以后,不管有多苦,我想我们全部能变苦为乐,找寻有趣事情,发觉其中珍贵事情。就像中国提倡艰苦奋斗一样,我们全部能够在试验结束以后变愈加成熟,见面对需要面正确事情。回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,能够说得是苦多于甜,不过能够学到很多很多东西,同时不仅能够巩固了以前所学过知识,而且学到了很多在书本上所没有学到过知识。经过这次课程设计使我知道了理论和实际相结合是很关键,只有理论知识是远远不够,只有把所学理论知识和实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提升自己实际动手能力和独立思索能力。在设计过程中碰到问题,能够说得是困难重重,但可喜是最终全部得到了处理。试验过程中,也对团体精神进行了考察,让我们在合作起来愈加默契,在成功后一起体会喜悦心情。果然是团结就是力量,只有相互之间默契融洽配合才能换来最终完美结果。此次设计也让我明白了思绪即出路,有什么不懂不明白地方要立即请教或上网查询,只要认真钻研,动脑思索,动手实践,就没有弄不懂知识,收获颇丰。课程设计立即完成,此次课程设计我最想感谢,最应该感谢是蒋先刚老师,假如不是蒋老师指导,我想我可能不能这么顺利完成。经过大三下这一个学期学习蒋老师课程,令我受益匪浅! 6.参考文件 [1] A Hashizume, P S Yeh, A Rosenfeld. A Method of Detecting the Orientation of Aligned Components[J]. Pattern Recognition Letters, 1986,4:125~132. [2] L.O’Gorman. The Document Spectrum for Page Layout Analysis. IEEE Transactions. PAMI, Vol.15,No.11, 1993:pp.1162~1173. [3] Procedural Elements for Computer Graphics, Second Edition (美)(Rogers,D.F) 北京:机械工业出版社,.2 [4] A Piva, M Barni,F Bartolini, V Cappellini. DCT-based watermark recovering without resorting to the uncorrupted original image[A].Proceedings of 4th IEEE International Conference on Image Processing ICIP’97[C].Santa Barbara,CA,USA:ICIP,1997. [5] Zhong wei.Image watermarking using Legendre array[J].Journal of china institute of communications,,22(1):1~6. [6] 潘梅森,荣秋生.SOFM神经网络图像融合二值化方法[J].光学精密工程,,15(3):99~104. [7] 潘梅森,易明.一个基于人类视觉自适应均值滤波算法[J].计算机工程和应用,,42(10):62~64. [8] 王建卫.彩色图像中值滤波算法改善和应用[J].哈尔滨商业大学大学报:自然科学版.,22(4):67~69. 7.附录 unit Unit2; interface uses Windows, Messages, 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(Sender: 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.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,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 ZoomOutClick(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); 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: 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: 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(Srcbmp, 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 declarations } end; var Form1: TForm1; starttime, endtime: longint; OriginalBmp: TBitmap; implementation uses Unit3; {$R *.dfm} procedure TForm1.N19Click(Sender: TObject); begin if OpenPictureDialog1.Execute then image1.Picture.Bitmap.LoadFromFile(OpenPictureDialog1.FileName); OriginalBmp.Assign(image1.Picture.Bitmap); 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; aScnLnBuffer: 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分配内存 GetMem(aScanLine, nScanLineSize); try for y := 0 to aBitmap.Height - 1 do begin //进行数据块移动 Move(aBitmap.ScanLine[y]^, 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 := 0 to nMultiplier - 1 do Byte(aScnLnBuffer[nOfs + i]) := aScanLine[nIdx + i]; end; end; //宽和高交换开始,逆时针旋转 aBitmap.Height := nMemHeight; aBitmap.Width := nMemWidth; for y := 0 to nMemHeight - 1 do begin //数据移动 nOfs := y * nMemWidth * nMultiplier; Move((@(aScnLnBuffer[nOfs]))^, aBitmap.ScanLine[y]^, nMemWidth * nMultiplier); end; finally //释放内存aScanLine FreeMem(aScanLine, nScanLineSize); end; finally //释放内存aScnLnBuffer FreeMem(aScnLnBuffer, nMemSize); end; end; procedure TForm1.N20Click(Sender: TObject); begin SavePictureDialog1.Filter := '*.bmp|*.bmp'; if Self.SavePictureDialog1.Execute then begin Image1.Picture.Bitmap.SaveToFile(SaveP- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 图形学 专业课程 设计 项目 说明书
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文