毕业设计(论文)-基于分形的图像处理系统.doc_第1页
毕业设计(论文)-基于分形的图像处理系统.doc_第2页
毕业设计(论文)-基于分形的图像处理系统.doc_第3页
毕业设计(论文)-基于分形的图像处理系统.doc_第4页
毕业设计(论文)-基于分形的图像处理系统.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

南 阳 理 工 学 院本科生毕业设计(论文)学院(系): 软件学院 专 业: 软件工程 学 生: 指导教师: 完成日期 2012 年 05 月南阳理工学院本科生毕业设计(论文)基于分形的图像处理系统The Graphic Image Processing System Based On Fractal总 计:毕业设计(论文) 31页表 格: 0个图 片: 25个基于分形的图像处理系统南 阳 理 工 学 院 本 科 毕 业 设 计(论文)基于分形的图像处理系统The Graphic Image Processing System Based On Fractal学 院(系): 软件学院 专 业: 软件工程 学 生 姓 名: 学 号: 068109225 指导教师(职称): 评 阅 教 师: 完 成 日 期: 2012年05月03日 南阳理工学院Nanyang Institute of Technology基于分形的图像处理系统软件工程 侯飒飒摘 要 分形理论是当今世界十分风靡和活跃的新理论、新学科。其主要描述自然界和非线性系统中不光滑和不规则的几何形体。在许多领域都有很广泛的应用,因此对分形理论的研究既具有理论意义,又具有非常广泛的实际应用价值。本文主要研究分形理论在计算机科学上的应用,实现了对一些经典分形图的绘制;处理生成的分形图形;实现图像的去噪和压缩等应用,并能将生成的图形保存在硬盘。总之,分形理论的出现,不仅让人们感悟到科学与艺术的融合,数学与艺术审美的统一,而且有其深刻的意义。关键词 分形理论;分形维数;图像设计The Graphic Image Processing System Based On FractalSoftware Engineering MajorHou SasaAbstract: Fractal theory is very popular in the world today and an active new theories, new disciplines. Describe the nature of their principal and nonlinear systems is not smooth and irregular geometry. In many areas have a very wide range of applications, so the fractal theory study has both theoretical significance, but also has a very wide range of practical value. This paper studies the fractal theory in computer science applications, the realization of some classical fractal mapping; processing generated fractal graphics, image denoising and compression applications, and can generate graphics stored in the hard drive. In short, the emergence of fractal theory, not only so that people came to realize the integration of science and art, mathematics and art aesthetic unity, but also has its profound significance.Key words: Fractal Theory; Fractal Dimension; Graphic Design目 录1 背景与意义:11.1 本课题研究的意义11.2 本课题已有的研究成果与现状分析21.2.1 分形理论在图形学中的应用研究.21.2.2 分形图案的计算机生成31.2.3 国内外在计算机分形图形方面的研究状况31.3 分形理论的应用及存在的问题51.4 本文主要的研究工作.52 需求分析62.1 功能概述62.2 可行性分析62.2.1 经济可行性62.2.2 技术可行性62.2.3 操作可行性72.2.4 法律可行性72.3 系统需求分析72.3.1 系统的功能需求72.3.2 系统的性能需求82.3.3 系统开发环境83 系统设计83.1 系统的特点83.2 系统的总体框架设计93.3 用户界面设计103.4 系统各模块的功能设计114 编码与实现144.1 系统的界面144.2 基本图形的绘制模块144.3 分形图形的绘制模块194.4 图像处理的应用模块244.5 其他265 总结与展望285.1 论文总结285.2 展望295.3 结束语29参考文献30致谢311 背景与意义:1.1 本课题研究的意义分形理论是当今社会非常风靡和活跃的新学科,它由美籍数学家、IBM公司研究中心物理部研究员暨哈佛大学数学系教授曼德布罗特首先提出。如今已经在许多领域开展应用探索。美国物理学大师约翰惠特说:分形几何不仅展示了数学之美,也揭示了世界的本质,还改变了人们理解自然奥秘的方式;可以说分形几何是真正描述大自然的几何学,对它的研究也极大地扩展了人类的认知疆域。分形几何的出现,使人们重新审视这个世界:世界是非线性的,分形无处不在。自从 Euclid(欧几里得)在两千年多年前创立几何学以来,在漫长的岁月里,自然科学研究人员与数学家们基本上都在 Euclid 空间进行研究和探索,但 Euclid 几何学不是万能的,大自然的许多现象都不可能用 Euclid 几何来解释。比如树是三维空间的实物,但怎么由二维来描述呢?显然不能。那么如何来描述大自然几何及其他许多 Euclid几何所不能解决的问题呢1?直到 20 世纪 70 年代,由于一个跨时代学科的诞生分形几何,这些问题都得到了很好的解决。在分形几何诞生之前,科学家们在这方面做了许多研究。1827 年英国植物学家布朗(R.Brown)用显微镜发现微细颗粒在液体中作无规则行走 ,此现象被称为布朗运动。美国数学家维纳(N.Wiener)等人在此基础上创立随机过程理论。1872 年,德国数学家维尔斯特拉斯(K.T.W.Weierstrass)给出了一个处处连续、但处处不可微的三角函数级数。1883 年,著名的德国数学家康托尔(G.F.P.Cantor)构造了三分集。1890 年,意大利数学家皮亚诺(G.Peano)提出了充满空间的曲线皮亚诺曲线。1891年,德国数学家希尔伯特(D.Hilbert)在数学年刊(MathematischeAnnalin)上发表短文,提出了能充满平面区域的希尔伯特曲线。1904年,瑞典数学家柯赫(H.vonKoch) 构造出柯赫雪花曲线。1915-1916 年,波兰数学家谢尔宾斯基(W.Sierpinski) 构造了谢氏曲线、海绵、墓垛。1919年,德国数学家豪斯道夫(F.Hausdorff) 给出维数的新定义,为维数的非整化提供了理论基础。1925 年柏林大学的克莱默(H.Cremer)首次手工绘制了朱丽亚集的图象。1932 年,俄罗斯数学家庞特里亚金(L.S.Pontryagin)给出盒维数的定义。1967年,曼德布罗特在IEEE信息理论学报上发表论文具有 1/f 谱的某些噪声,直流与白噪声之间的一座桥梁。1967 年他又在科学上发表题为英国海岸线有多长?统计自相似性与分数维数的著名论文。1968 年美国生物学家林德梅叶(A.Lindenmayer)提出研究植物形态与生长的“L 系统”方法。1977 年,曼德布罗特出版英文版专著分形:形、机遇与维数。“分形”这个名词是由曼德布罗特(Benoit B.Mandelbrot)在1975年首先提出的,其原义是“不规则的,分数的,支离破碎的”物体。1977年,他出版了分形:形态、偶然性和维数(Fractal:Form、Chance and Dimension)2一书,标志着分形理论的正式诞生,5年后,他出版了著名的著作自然界的分形几何学(The Fractal Geometry of Nature)3,至此,分形理论初步形成。那么什么是分形呢? 分形是指其组成部分与整体以某种方式相似的形,也就是说,分形一般具有自相似性,其中也包括一个对象的部分与整体具有自仿射变换关系的相似。由此可以得出,分形具有下面5个基本特征及性质:形态的不规则性;结构的精细性;局部与整体的自相似性;维数的非整数性;生成的迭代性。分形几何与大自然的各种形态具有非常紧密的联系,如天空的云团、植物的叶脉、海岸线的形状等,可以看出分形的形态是极其不规则的,并且具有非常精细的结构。如著名的Koch曲线等,无论把其放大多少倍,都能看到其局部与整体的相似性及精细性4。分形理论已广泛应用于各个领域,如:数学、物理、化学、材料科学、生物与医学、地质和地理学、地震和天文学以及计算机科学等。因此,分形理论的研究具有重要的理论意义,又有广泛的实际应用价值。计算机艺术是随着计算机软件的发展而新兴的艺术形式,计算机图形学中分形研究的深入发展和计算机在艺术设计中的应用,使得艺术家可以用更多的方式来进行创作,也给图形设计带来了新的元素,用分形几何可由简单的计算方法得到复杂图形5。分形图形具有计算机逻辑语言与艺术造型形式耦合的特征,是既不能用经典几何方法描述,也不能用传统绘图方式表现的“不规则”图形。它具有形态的不规则性、结构的精细性、局部与整体的自相似性、维数的非整数性、生成的迭代性等6。所以分形图形错综、多变、绚丽和富于表现,在图像设计上具有重要的应用价值。世界上的图形千变万化,绚丽多彩,很多的图形都是结构复杂,结构简单规整的图形很少,除了三角形,四边形等二维图形用 Euclid 几何学可以绘制出来的,大部分是很难用手工绘制,分形图形就是其中的一种。如今,随着计算机的发展,这类图形也可以用计算机生成,在分形几何诞生以来,这部分的研究一直很火热,科学家和图形工作者已经用计算机生成了许多经典的分形图形,如 Cantor 集;Koch 曲线;Julia 集Mandelbrot 集等,还有一些根据分形理论生成的图形,也可以根据分形几何理论自己设计算法用计算机生成。分形图形应用的范围越来越广泛,可以为家具设计、装饰图形设计、广告设计等领域提供广阔的图形选择空间。鉴于此,本文以分形理论作为理论基础,使用 Visual C+6.0 语言做了一个分形图形图像处理软件,生成各种分形图形,再进行图形的打开保存等处理,以及图形图像处理的一些应用。1.2 本课题已有的研究成果与现状分析1.2.1 分形理论在图形学中的应用研究.分形理论是近一、二十年才发展起来的一门新的理论,因而目前仍处于发展之中,自然科学领域中的分形学术论文不断增加,社会科学领域涉及分形的论文和书籍也越来越多。有关分形的国际会议及各种专题讨论会有增无减。国际学术刊物“混沌、孤子和分形”(Chaos, Soltons and Fractals)和“分形学”(Fractals-An Interdisciplinary Journal on the Complex Geometry of Nature)先后也正式创刊。分形理论越来越多的被应用到计算机图形学领域。将分形几何学引入到计算机图形学中,为非规整形状图形的计算机描述和处理提供了有利工具,成为目前研究世界物质模型的一个扩展。借助于分形的计算机生成,从少量的数据生成复杂的自然景物图形,使我们在仿真模拟方面前进了一大步7。由于分形的自相似性,可横越不同尺度对称,意味着图案的递归在越来越小的尺度上产生细节,形成无穷无尽的精致结构,一定程度上超越了人脑的思维,是一种计算机艺术。计算机分形图案不论在深度还是广度上都是无限的。分形艺术又不是随意的,基于数学产生的分形的表现是具有决定论本质的,使用相同的图像产生相同的结果,轻微的改变输入参数,在运行中通常导致并不轻微的改变,只需要很少的信息量,就可以得到绚丽的图案8。分形几何应用在图案设计中是一个研究热点,基础图案一般是由单个纹样来显示的,单个纹样的拼接得到二方连续纹样、四方连续纹样等图案形式,图案设计是用手绘或者计算机程序绘制。因此,其设计是定型的和格式化的。利用分形几何知识进行图案设计就可以改变这种传统模式,创造出完全由计算机实现的新型的设计,从而使图案设计走进一个用数学指令进行的新时代9。分形理论在图像处理方面的应用更是炙手可热,分形图像编码方法可以获得极高的压缩比,且其解码图像分辨率独立10。由于分形集可以用简单的迭代方法生成复杂的自然景物,用分形参数有效度量物体的复杂性,这样分形与图像之间就存在一种自然联系,这奠定了分形理论用于图像处理的基础,开辟了图像应用的新领域。分形图像处理技术是分形理论与图像处理技术结合的产物。1.2.2 分形图案的计算机生成我们知道要用计算机来生成图形,必须遵循一定的算法。虽然分形理论是用来解决非线性科学中的一个重要理论,具有无规则性和复杂性,但自相似原则和迭代生成原则是分形理论的基础,所以可以设计一些算法在计算机上生成,比如说是分形的递归算法;分形的字符串的替换算法;分形的迭代算法;分形的逃逸时间算法4等。应用这些计算机算法,就可以生成绚丽多彩的分形图案。可以说分形图形与计算机应用及分形理论的应用都是完美结合。1.2.3 国内外在计算机分形图形方面的研究状况根据前文所述,分形图形可以由计算机来生成,这得益于分形理论的理论基础即自相似性和复杂性。自从 B.B.Mandelbrot 创始分形几何以来,分形理论研究开始风靡全世界,中国也很早就有人研究这方面的工作,翻译和出版了许多外文版的分形几何学和其他相关支持学科。也诞生了许多在这方面有很深造诣的专家,如文志英、苑玉峰、申维、马克明、谢和平等。Cantor集、Koch曲线、Julia集、Mandelbrot集等都是经典分形图形。在吴运兵的硕士研究生毕业论文里对这几种分形图形软件的计算机编程语言及简要介绍。文献8选用不同的生成元得到了不同的分形图;选定若干仿射变换,将整体形态变换到局部,并且迭代下去,甚至引入三个向量表示空间系统,通过初始点的选择和迭代次数的限定得到了L系统绘制的CAYLEY 树;通过在复平面上的迭代将局部进行无数次的放大得到了Julia集和Mandelbrot集,最后为了使得到的图形更加美观,可以使用图形处理软件 Photoshop或3D max来进行色彩、亮度和层次调整到满意为止。文献11苏州大学数学科学学院的杨松林讲师在复平面上用一个迭代式经过4次牛顿迭代得到了Julia集。文献12给出了一种绘制Von Koch曲线的方法非递归法,具体做法是把单位线段去掉1/3,代之以底边在被除去线段上的等边三角形的另外两边,以后每一步迭代都是把上次图形中的每条折线段去掉中间的1/3,代之以类似的等边三角形的另二边。可以很清楚地了解到,这种曲线的生成元是一个特殊曲线由把第一折线段反复迭代成缩小比例为1/3的生成元而成。只要约定好记号,把生成元的构造用字符串表示出来,并且反复迭代,可直接得到我们要的曲线。文献13给出了经典分形图形Sierpinski地毯的实现算法,在文中作者取n=4,Sierpinski地毯实际上就是将以下4个压缩比为14的压缩函数,该函数无限地作用于单位正方形F0上而生成的满足开集条件自相似集的交集。由Sierpinski地毯的构造过程可知,为了模拟Sierpinski地毯,必须绘制出m从1到的每一级构造中的4m个小正方形。绘制时,当m的值大到一定程度时,所绘制出的图形已接近甚至等价于Sierpinski地毯。已知所要绘制的正方形左上角和右下角的坐标,通过使用函数rectangle就可方便的将其绘制出来。有前文所述可知,国外开展分形图形的研究要早于国内的研究,但国内也取得了不少丰硕的成果。文献14介绍了理解分形几何需要掌握的一些数学知识和应用,从中可以看出要真正理解分形理论没有很好的数学基础是几乎不可能的。分形理论有许多的应用,文献15介绍了分形理论在艺术设计中的应用研究,给人一种很好的美感;也有书介绍了分形理论和分形技术在非洲的一些应用情况,如非洲殖民建筑跨文化对比等都用到了分形几何和分形理论。在Chaos, Solitons and Fractals杂志上有许多有关分形理论和分形图形的文章, Attilio Maccari 的Chaos, solitons and fractals in hidden symmetry models,Fractal and nonfractal properties of triadic Koch curve;还有Engineering Fracture Mechanics上也有一些有关分形理论和分形图形的文章。国外也有许多的分形专家,总体来说在国外分形理论比国内应用的要更广泛、更早。1.3 分形理论的应用及存在的问题分形图形可以应用在许多方面,如分形服装、分形壁画、分形挂历等,而且分形图形应用在这些方面可以给人耳目一新的感觉,但其实在我们现实生活中分形图案并没有深入人心。更多的是应用在艺术设计中。连跟我们大家接触最多的服装图案、家具设计图案等也并没有更多的以分形图形作为图案的选项,家居设计中普遍采用横竖交叉的直线或曲线形成“格子”,比如用格子图案用在门、沙发套、床罩、枕罩;还有花卉图案、几何图形、插图,这些图形成为近几年家居图案的流行元素。在服装图案设计中,设计者也几乎基本没有采用分形图形作为他们的服装外表图案,在儿童服装中采用Cartoon形象作为服装图案,其他普通的服装要么用色彩来替代图案要么用简单的几何图形来装饰。就连最追求时尚元素的舞蹈服装和演艺服装也很少用到分形图案。分形图形没有深入生活的一个重要原因是分形图形的理论、建模、编程不为一般设计人员所熟悉。虽然现在有许多专门产生分形图形的软件,但只是局限于对一些常见分形图形的绘制,但要达到满意的效果以应用于实际生活还需要借助其它的图形处理软件,比如Photoshop、3ds.max等,在我们的周围,现在还没有分形图形绘制与图形处理结合在一些的分形软件,加上分形图形结构比较复杂,很难用手工在样品上绘制。虽然服装代表着一种场合和一个人的气质,每一种服装和每一个场合都要由特定服装色彩和图案来衬托,但把分形图形应用在演艺服装或是舞蹈服装上是很有前景并会很美观的,因为这些服装代表着一种高贵的气质和追求视觉的美感,能给人眼前一亮的感觉,非常符合观众心灵感受。分形压缩编码方法在图像去噪上的应用由于其可获得极高的压缩比而得到广泛关注。分形压缩编码时间随着计算机技术的发展和分形编码算法的优化已经从原来的几小时缩短到几秒钟,基本满足了实际应用的需要。而且它已经开始应用于数字水印等其它领域。但是,利用分形编码进行图像去噪的研究才刚刚起步,如果图像被噪声污染,分形编码算法的性能将明显降低。因此,在实际应用中它的应用范围很有限。分形理论的其它应用如边缘检测、图像分割等技术都有广泛的应用,同时,分形常数能表现图像灰度变化快慢可以反映图像的纹理变化,这些应用都是很有效的。1.4 本文主要的研究工作.依据当前分形图形在服装图案设计、家居设计等应用领域的现状和研究成果分析,以及分形理论在图形学上的应用,本文主要进行了如下的研究工作:(1)分形图形的计算机生成。参考此领域的研究成果,分形图形设计有许多较成熟的算法,比如分形的迭代算法,分形的递归算法;分形的字符串的替换算法;分形的逃逸时间算法等。根据这些现成的算法绘制很多美丽的分形图案。(2)简单图形的绘制。借用MFC的类库,绘制一些简单的图形。(3)设计该系统软件的中文界面。用迭代的数学原理,生成迭代分形图和一些经典的分形图,并可把这些图形保存到电脑中作进一步处理。(4)设计图像的处理功能,例如图像的压缩、去噪、灰度处理,边缘检测处理等2 需求分析2.1 功能概述对于基于分形的图形图像处理系统来说,其主要的功能在于分形理论在图形图像绘制上的应用。该系统的最终目的是为计算机图形图像系统的初学者和计算机图形学的从业人士提供一个简单的基于分形的图像处理的系统,该系统将实现简单的图形绘制、分形图集绘制、图形图像处理的一些应用。2.2 可行性分析2.2.1 经济可行性整个系统的开发,需要投入一定的人力和物力。开发成本稍微有点大,周期有点长,需要大量的时间去调研、设计实现,但开发成功后后期的维护将会很简单。系统的运营,将是非盈利性质的,所有的功能模块全部免费的。但如果此系统被很多用户使用起来,做二次开发或者研究使用,它会创造无限的价值。总体来说,虽然这种非盈利系统开发需消耗一定的人力物力,但它创造的价值将是无限的,因此,从经济角度来讲,此系统是可行的。2.2.2 技术可行性该图像处理系统在开发环境上主要基于Visual C+ 6.0和OpenCV类库的MFC应用程序开发,是一个单文档应用程序。其中,Visual C+ 6.0,简称VC或者VC6.0,是微软推出的一款C+编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。Visual C+是一个功能强大的可视化集成的软件开发工具。它是基础的C+开发环境,适合所有学习C+语言的人员使用。OpenCV的全称是:Open Source Computer Vision Library,它是一个开源的跨平台计算机视觉库。由一系列C函数和少量C+类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。使用起来简单方便,而且运行速度很快。技术理论上,主要依托于分形理论,其次是MFC的基础知识。随着分形理论的深入人心,在国内外的许多杂志刊物及论文网上开始出现大量的分形相关理论,为系统的设计提供了有效的理论基础。MFC即Microsoft Foundation Classes,是一个微软公司提供的类库(class libraries),以C+类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。它是比较成熟的一个类库,学习和使用起来并不会存在障碍,因此,从技术可行性上来说,该系统是可行的。2.2.3 操作可行性该系统是本地MFC单文档应用程序,点击图标运行即可操作使用。它的界面是中文界面,操作简单明了。在设计过程中,从使用者角度出发,尽量减去了复杂的操作,使所有的操作均可使用鼠标或者简单的键盘输入来执行。而且它无需借助网络,使用者无论身处什么位置,只要有执行环境即可使用该系统,总体来说,本系统简单、方便,易于被使用者熟悉操作并接受。因此在操作可行性上来说,此系统是可行的。2.2.4 法律可行性此系统为本人的毕业设计与商业无关,整个系统由本人自主开发,设计完成后将不会作为盈利软件投放如市场,即该平台的开发与运营将不会在社会上引起侵权或其它责任问题。因此不会构成侵权行为,所以在法律上是可行的。2.3 系统需求分析2.3.1 系统的功能需求本课题主要是研究分形理论在图形图像处理上的应用,通过大量的研究发现,基本的图像处理系统,都具备图像信息的管理和基本图形的绘制。因此,本系统应该具有以下功能模块:(1)基础图形的绘制模块该模块包括直线的绘画、折线的绘画、矩形的绘画、椭圆的绘画、曲线的绘画、多边形的绘画。在绘画线的过程中可以选择待画线的颜色、线型、线宽;绘画带区域的图形时,可设置区域的填充色、填充风格及颜色。并需要提供工具箱的墨水瓶,油漆桶,吸管以及色板等工具条,用于设置图形有效区域。(2)分形图形的绘制模块该模块包括分形图集的绘制,如cantor集、C曲线、Julia集、Mandelbrot集、Koch曲线及Koch雪花等用于模拟自然景物,不同的分形图对应不同的窗体响应函数,并且根据不同的分形图可以设置不同的参数,以展现不同的分形图,而且可以把绘制出的分形图保存到指定文件夹,方便用户研究观察使用。(3)图像信息的管理模块该模块主要是图像信息的管理即图像文件的打开、保存、替换、删除等。任何使用该系统的用户都有权限操作图像的信息,都有权限保存到磁盘的任何盘符及子文件夹。可以根据用户的需要更改图像文件路径及基本的属性信息等。为了系统的人性化,当图像文件操作出现异常时,需要提供简单的提示信息。2.3.2 系统的性能需求系统的性能包括信息系统的效率、处理方式、可靠性、安全性、适应性等内容效率是信息系统的处理能力、处理速度、吞吐量、响应时间等与系统处理时间有关的性能要素处理方式涉及的范围比较宽,包括信息系统的结构和分布模式、交互方式、业务处理方式等可靠性是保证系统正常工作及抗故障、抗干扰的能力,它包括:保证系统正常工作的能力;对系统故障的预防、检测以及自动纠错的能力;出现故障时,保证系统不发生崩溃,并使系统重新恢复、重新启动的能力等安全性是保证合法用户能够正确使用信息系统,并防止非法用户访问信息系统的能力适应性是信息系统对外部环境和需求变化的适应能力根据系统的性能需求,基于分形的图形图像处理系统的开发主要要实现的目标有以下几个方面:(1)界面设计友好、简洁、美观。(2)图像数据存储安全、可靠。(3)功能模块分类清晰、准确。(4)丰富的图像处理功能,保证图像处理的灵活性。(5)实现图形的分类的展示。(6)提供工具箱,方便用户拖动工具箱操作图形的绘制。(7)提供图像的打开、保存、删除等功能,方便用户查看结果。(8)窗体数尽量少,保证系统的优化。(9)具有易维护性和易操作性。2.3.3 系统开发环境在开发基于分形的图形图像处理系统时,需要具备如下的软件环境:操作系统:Windows XP开发工具:Microsoft Visual C+ 6.0开源库 :OpenCV 1.03 系统设计3.1 系统的特点(1) 可移植性、可扩展性强针对 Photoshop 等商用软件理解和掌握图像处理基本知识的内容很少,而且可移植性和可扩展性差的特点,本系统内容丰富,涵盖图像处理领域的几乎所有内容,VC自带的图像处理工具箱以及opencv库提供了丰富的图像处理函数, 而且VC图像工具箱和opencv库提供的函数大多是系统头文件,我们可以在网上查看这些文件的代码并进行改进,也可以把自己编写的代码加入其中,来扩充图像处理的功能。所以具有很强的可移植性和可扩展性,可以较方便的增加新的内容。(2) 界面友好,操作简单方便界面采用全中文方式的菜单和工具条方式,凡是需要确定参数的算法都有设置参数的对话框,用户可以方便的输入不同的参数,便于比较不同参数条件下的图像处理效果,从而便于用户理解有关参数变化对处理结果的影响。用户只需在功能菜单中进行必要的单击操作或者简单的输入即可得出处理结果。(3) 便于二次开发本系统不仅可以作为学习、理论教学演示和实验用,而且方便用户进行特定领域图像处理软件的开发和设计。用户可以根据实际情况的需要利用本软件进行逐步的处理试验,选择出最优的处理方法、处理步骤、最佳的参数设置,然后再编写自己的软件。当处理结果不能完全满足要求时,用户可以知道具体是哪个或哪些处理步骤不能满足要求,从而有针对性的对算法加以改进或重新组合,开发出满足实际需要的新软件。3.2 系统的总体框架设计本系统将按照图形图像系统的处理技术涉及的各个方法来设计系统的整体框架,整个系统主要由如下4个模块及其子模块组成,其中子模块也可以细分。下图为系统的总体框架图。图3-1总体框架图3.3 用户界面设计 1. 系统界面简介本界面设计的总体思路是通过一个主菜单窗口和其它的子窗口关联。在主菜单窗口中,建立各种图像处理的菜单,通过单击菜单去调用子窗口,在子窗口中调用处理函数以实现相应的操作,如图3-2所示为主窗口界面。主界面包括文件、编辑、查看、简单图形、修改、窗口、分形图、分形应用操作和帮助共 9 个菜单。每一个菜单相应的会有几个子菜单,子菜单也有相应的细分,其对应的就是每一部分图像绘制或处理的算法,这里以分形图的C曲线为例,通过主窗口单击分形图操作,选择C曲线,进入到C曲线的绘制窗口界面,在属性面板的分形维数面板设置C曲线的维数,绘制C曲线如图 3-3所示。图3-2主窗体界面图图3-3绘制C曲线图2用户界面设计概述传统的用户界面是指用户与计算机之间进行互相通信的平台,并拥有多种多样形式的人机交互方式,它的发展由命令行的交互方式转变逐渐转变成以图形界面为主的交互形式。现在,图形界面已在人机交互方式中占主导地位,这主要是由于它给用户带来了操作和控制的方便与灵活性。图形用户界面在程序开发中起着举足轻重的作用。由于使用图形图像处理系统的用户将可能是初学者甚至是非专业计算机人员,所以界面的设计与使用需要简单而方便,大多数功能均采用菜单按钮,用户只需要利用鼠标或键盘就能方便地操作它。系统设计由实现各种算法功能的用户操作窗口所组成,窗口中包括标题栏、菜单栏、工具箱、各种控件及文字说明等。窗口的标题栏用于给窗口取名,其名称与实现的算法功能相一致。说明该窗口具体要实现的功能。窗口中的菜单来实现各功能窗口的转换,起到导航作用,用户只需点击菜单项就可进入到相应功能的用户操作界面。菜单项的标题是全中文的,菜单条的名称也通俗易懂。为了使菜单项简洁,在一个窗口中只列出了同一大类包括的各个算法的菜单条。另外每一个窗口可以直接返回来操作主界面。这是由于,子窗口与主菜单窗体都是非模式对话框,关掉小窗口后,主菜单窗体依然可以直接响应用户的操作。这样就实现了从局部到整体的转换。“帮助”菜单项起到介绍本系统的作用,用来让用户查看系统信息,帮助信息中包含了系统的简介。系统的窗口中的控件主要设计有:图像控件、静态文本框、可编辑文本框、下拉式列表框、按钮、对话框、弹出式菜单和坐标轴等。静态文本框用于说明界面上的控件和显示处理结果。可编辑文本框主要用来接收用户输入的数据。图像控件用于显示一些控件的图标,是用户更加清晰控件的功能。下拉式列表框主要用于设置一些图像处理中需要作的设置,也在某些地方用来显示处理运算的结果。按钮用于执行单击操作用的,当用户对处理前的数据作了正确的输入后及设置后,单击按钮,系统就开始进行执行操作。对话框用于当用户单击按钮后需要程序在运行中进行的输入设置,还用于提示用户出现的非法输入。弹出式菜单是用户将鼠标指向窗口或某个控件时,单击鼠标右键弹出的菜单,在本系统中弹出式菜单主要用于实现一些辅助性操作和对控件作说明之用。坐标系是用来绘制图形和图象,使处理结果直观地表示出来。3.4 系统各模块的功能设计本系统主要实现图像的绘制、打开、保存、显示等基本操作以及图像处理相关操作。图像处理模块是本系统的核心。图像处理模块所实现的主要功能是不同分形相关算法的处理,用户可以选择其中某个算法进行相应处理,对处理后的图像进行观察分析,对算法进行比较,针对不同用途应用不同方法,对于初学者来说可以更好的理解图像处理技术,对于算法研究人员来说可以更有效的进行深入研究开发。整个系统主要包括以下的功能模块:(1)直线的绘画当选择绘画直线功能时,要获取鼠标的两次有效区域的单击,首次单击有效区域时,开始绘画起点,当鼠标第二次落下时,直线绘画完毕。然后,把当前的直线对象添加到工程的全局对象变量中,用于后期的删除操作。(2)折线的绘画当选择绘画折线功能时,要获取鼠标的有效次有效区域的单击,首次单击有效区域时,开始绘画起点,当鼠标第二次落下时,折线的第一条线绘画完毕。然后,把当前线的终点作为起点,等待下次的鼠标单击,以此类推,直到鼠标双击结束折线的绘画,把折线对象添加到工程的全局对象变量中,用于后期的删除操作。(3)矩形的绘画当选择绘画直线功能时,要获取鼠标的两次有效区域的单击,首次单击有效区域时,开始绘画起点,当鼠标第二次落下时,起点和终点分别为矩形的左上点和右下点,在四点之间绘画四条直线,矩形绘画完毕。然后,把当前的矩形对象添加到工程的全局对象变量中,用于后期的删除操作。(4)椭圆的绘画当选择绘画椭圆功能时,要获取鼠标的两次有效区域的单击,首次单击有效区域时,开始绘画起点,当鼠标第二次落下时,起点和终点分别为椭圆的最左点和最右点,在两点之间绘画一个椭圆。然后,把当前的椭圆对象添加到工程的全局对象变量中,用于后期的删除操作。(5)曲线的绘画当选择绘画曲线功能时,要获取鼠标的有效次有效区域的单击,首次单击有效区域时,开始绘画起点,当鼠标第二次落下时,绘画成一条直线,拖动直线上任意一点可拉伸该直线为曲线,并重画出垂直于该曲线的直线,双击鼠标可结束曲线绘画。然后,把当前的曲线对象添加到工程的全局对象变量中,用于后期的删除操作。(6)多边形的绘画当选择绘画多边形功能时,要获取鼠标的有效次有效区域的单击,首次单击有效区域时,开始绘画起点,当鼠标第二次落下时,多边形的第一条线绘画完毕。然后,把当前线的终点作为起点,等待下次的鼠标单击,以此类推,直到鼠标双击作为终点,连接终点与起点,结束多边形的绘画,把多边形对象添加到工程的全局对象变量中,用于后期的删除操作。(7)线的设置设置专门的对话框,添加下拉列表框控件,添加一些线型的对象如实线,虚线等用于设置线的类型,添加色板设置线的颜色,添加滑块控件设置线的宽度。并设置编辑框显示线的当前宽度。设置过程中直接把线的信息更新到当前工程的全局变量中。(8)区域的设置设置专门的对话框,添加下拉列表框控件,添加一些填充类型的对象如垂直线,水平线等用于设置填充类型的类型,添加色板设置填充类型的颜色,设置过程中直接把区域的填充的信息更新到当前工程的全局变量中。(9) Cantor集当选择绘画Cantor集功能时,要设置专门的对话框,用于设置Cantor集的分形维数,随着分形维数的更新,重绘当前窗口,根据分形维数绘制新的Cantor集。(10)C曲线当选择绘画C曲线功能时,要设置专门的对话框,用于设置C曲线的分形维数,随着分形维数的更新,重绘当前窗口,根据分形维数重新绘制C曲线。(11)Julia集当选择绘画Julia集功能时,在新窗体中绘制出美丽的Julia集图像,当鼠标选中一块区域时,销毁当前窗体,新建新的窗体绘制出鼠标选中的图像。可无限次操作,以欣赏分形图形的细节。(12)Mandelbrot集当选择绘画Mandelbrot集功能时,在新窗体中绘制出美丽的Mandelbrot集图像,当鼠标选中一块区域时,销毁当前窗体,新建新的窗体绘制出鼠标选中的图像。可无限次操作,以欣赏分形图形的细节。(13)Koch曲线当选择绘画Koch曲线功能时,要设置专门的对话框,用于设置Koch曲线的参数,新建新的对话框用于存放当前Koch曲线的图像信息,随着参数的更新,销毁当前对话框,新建新的对话框,根据参数重新绘制Koch曲线。(14)Koch雪花当选择绘画Koch雪花功能时,要设置专门的对话框,用于设置Koch雪花的参数,新建新的对话框用于存放当前Koch雪花的图像信息,随着参数的更新,销毁当前对话框,新建新的对话框,根据参数重新绘制Koch雪花。(15)边缘检测当选择边缘检测功能时,设置专门的子菜单,用于选择边缘检测的算法,分为拉普拉斯算法,sobel算法,canny算法等,根据不同的算法分别在对话框显示不同的处理后的图像,并提供保存操作,用于保存处理后的图像方便用户对比研究使用。(16)图像去噪当选择图像去噪功能时,设置专门的子菜单,用于选择图像去噪的算法,分为高斯平滑、中值滤波等,根据不同的算法分别在对话框显示不同的处理后的图像,并提供保存操作,用于保存处理后的图像方便用户对比研究使用。(17)灰度处理当选择图像的灰度处理功能时,先选择一张图像,加载后显示出灰度处理后的图像,并能提供保存操作,方便查看效果。(18)图像压缩当选择图像的压缩功能时,先选择一张图像,加载后显示出压缩后的图像,并能提供保存操作方便对比研究。(19)图像文件管理此模块包括图像文件的打开,保存,删除。其中图像文件的路径可由用户自己设定选择。过程中出现异常,提供友好的提示对话框。方便用户清楚操作的异常或图像的异常与否。4 编码与实现4.1 系统的界面系统主界面如图4-1所示:图4-1系统主界面4.2 基本图形的绘制模块(1)直线的绘画核心代码如下:/绘制直线void CLine:Draw(CDC *pDC)if(!m_bIsVisible)return;/直线不可见,则返回CPen pen,*pOldPen;if(m_bIsSelected)/如果直线被选中,则使用蓝色虚线画笔pOldPen = pDC-SelectObject(&m_PenBlueDot);else/否则创建其自身所用的画笔pen.CreatePen(m_nPenStyle,m_nPenWidth,m_clrPenColor);pOldPen = pDC-SelectObject(&pen);/画线pDC-MoveTo(m_ptStart);pDC-LineTo(m_ptEnd);pDC-SelectObject(pOldPen);效果图如图4-2所示:图4-2直线图(2)折线的绘画效果图如4-3图所示:图4-3折线图(3)矩形的绘画核心代码如下:void CRectangle:Draw(CDC *pDC)if(!m_bIsVisible)return;CPen pen,*pOldPen;if(m_bIsSelected)pOldPen = pDC-SelectObject(&m_PenBlueDot);else if(m_clrPenColor = CLR_NONE)/没有边框pen.CreatePen(PS_NULL,0,RGB(0,0,0);pOldPen = pDC-SelectObject(&pen);elsepen.CreatePen(m_nPenStyle,m_nPenWidth,m_clrPenColor);pOldPen = pDC-SelectObject(&pen);/创建画刷CBrush brush,*pOldBrush;LOGBRUSH lgbrush;lgbrush.lbColor=m_clrBrushColor;lgbrush.lbStyle=m_nBrushStyle;lgbrush.lbHatch=m_nBrushHatch;brush.CreateBrushIndirect(&lgbrush);pOldBrush=pDC-SelectObject(&brush);pDC-Rectangle(m_rcRect);pDC-SelectObject(pOldPen);pDC-SelectObject(pOldBrush);效果图如4-4图所示:图4-4矩形图(4)椭圆的绘画核心代码如下:void CEllipse:Draw(CDC *pDC)if(!m_bIsVisible)return;CPen pen,*pOldPen;if(m_bIsSelected)pOldPen = pDC-SelectObject(&m_PenBlueDot);else if(m_clrPenColor = CLR_NONE)/没有边框pen.CreatePen(PS_NULL,0,RGB(0,0,0);pOldPen = pDC-SelectObject(&pen);elsepen.CreatePen(m_nPenStyle,m_nPenWidth,m_clrPenColor);pOldPen = pDC-SelectObject(&pen);/创建画刷CBrush brush,*pOldBrush;LOGBRUSH lgbrush;lgbrush.lbColor=m_clrBrushColor;lgbrush.lbStyle=m_nBrushStyle;l

温馨提示

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

评论

0/150

提交评论