基于MATLA分型理论的仿真技术毕业论文

更新时间:2024-05-17 06:47:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

学士学位毕业设计(论文)

基于分形理论的MATLAB仿

真技术研究

学生姓名: 指导教师:

所在学院:信息技术学院 专 业:通信工程

中国·大庆 2011 年 5 月

摘要 摘要

分形理论是现代非线性科学中的一个重要分支,是科学研究中一种重要的数学工具和手段。通过对分形理论的认识和相关定理的理解,做出了一些比较典型的分形图形并实现了自己想象中的一批奇特的图形。运用分形理论描述图像纹理特征,通过分析不同纹理图像及图像边缘处的分形参数,得到一种新的边缘检测分形特征,从而提出一种基于分形特征的图像边缘检测方法。在讨论边缘提取时讨论算法的简单迅速,并具有良好的抗噪性能,并且简要了分形理论边缘提取方法简述了分形理论在图像中应用原理,讨论分形编码的特点,采用分形理论的方法,进行图像边缘的检测。并结合Matlab效果图和分形算法得出的图形充分理解分形算法,本文主要介绍分形的自相似图形算法和IFS码 和IFSP码模拟图形算法,并对比matlab仿真实验学习。

关键词:分形 matlab 分形特征 边缘提取

—I—

ABSTRACT ABSTRACT

Modern fractal theory is an important branch of the nonlinear science, is a kind of important scientific research of mathematical tools and methods. Based on fractal theory knowledge and understanding of the related theorem, made some typical fractal graph and realized the batch of strange oneself imagination of graphics. Using fractal theory describe image texture feature, through analyzing different texture image and image edge fractal parameters, get a new edge detection, and the fractal features is proposed based on the fractal characteristics of image edge detection methods. In discussing edge extraction to discuss the simple algorithm is very fast, and has good robust performance, and briefly the fractal theory edge extraction method described in the image fractal theory, discuss the application principle of fractal coding, with the characteristics of fractal theory, the method of image edge detection, Matlab powerful computer software intervention, will be able to realize the different image simulation better to understand knowledge, and combined with Matlab image rendering and fractal algorithm concluded graphics fully comparison, this paper mainly introduces the self-similar fractal graph algorithms and IFS yards and IFSP yards analog graphics algorithm, and contrast Matlab simulation experimental study. Keywords:fractal matlab Fractal characteristic Edge extraction

—II—

目录 目录

摘要 .................................................... I ABSTRACT ............................................... II 前言 ................................................... IV 1 绪论 .................................................. 1 1.1 分形理论的发展 .................................... 1 1.2 图像处理的发展 .................................... 2 1.3 论文的主要研究目的及内容 .......................... 3 2 数字图像处理技术 ...................................... 4 2.1图像处理的概念及内容 .............................. 4 2.2图像处理的边缘检测 ................................ 5 2.3图像处理的几何变换 ................................ 6 2.4图像处理的滤波 .................................... 8 2.5本章小结 ......................................... 10 3 分形理论 ............................................. 11 3.1分形理论的概念 ................................... 11 3.2几种典型的分形 ................................... 11 3.3分形的自相似性 ................................... 13 3.4边缘检测分形特征的提取 ........................... 14 3.5IFS基本理论及主要提取方法 ........................ 15 3.6本章小结 ......................................... 17 4 基于分形理论算法的研究及MATLAB仿真 .................. 18 4.1 MATLAB相关知识 .................................. 18 4.2自相似性分形图形的算法及MATLAB实现 .............. 20 4.3IFS码/IFSP码模拟图形的算法及实现 ................. 22 4.4本章小结 ......................................... 26 结论 ................................................... 27 参考文献 ............................................... 28 致谢 ................................................... 29 附录 ................................................... 30

—III—

前言 前言

自然界是复杂和美丽的。过去由于理论计算和实验技术的局限,科学家们无法对自然界做完美的描述;传统的科学只能把复杂的问题简化成为一个线性问题来研究。对自然界中出现的非线性现象也只能按线性理论作一定的微扰处理。而如今由于分形理论研究的逐步深入以及计算机学科的突飞猛进,使得这二者得以完美的结合,我们获得了许多过去难以想象的分形图形的模拟实现,自从Mandelbrot 提出分形的概念以来,分形学已发展成为一门横跨自然科学和社会科学各研究领域的新兴学科。分形学的基本思想是:客观事物具有自相似的层次结构,局部与整体在形态、功能、信息、时间、空间等方面具有统计意义上的相似性,即自相似性。自相似性原理的引入使分形理论成为研究和处理自然与工程中不规则图形的有力工具。广义而言,任何物体表面都可以看作是由某种纹理特征的表面构成,故任何图像都包含了若干种纹理区域的灰度表面。在这些不同纹理灰度表面之间灰度起伏变化显著,外在就表现为边缘。大多数纹理图像都可以用分形模型进行描述,而纹理特征的变化包含了图像的边缘信息。所以,我们可以运用分形理论进行边缘检测。本文在图像分形模型—分数布朗随机场的基础上,通过分析图像的分形参数,提出一种新的边缘检测特征,并运用自适应阈值,实现图像的边缘检测经典的、最简单的边缘提取方法是对原图像按象素的某邻域构造边缘检测算子。2O世纪8O年代某科学家提出的零交叉法提取边缘, 在实际处理过程中往往有许多问题, 如图像往往含噪声,而边缘和噪声在空间域表现为灰度有比较大的起落;在频率域则反映为同时高频分量,这就给真正边缘的提取带来困难。人们不断地寻找解决这些问题的途径。分数维图形可以模拟天际的积云、空中的闪电、地上的森林、海上的浪花、燃烧的火焰、树木的生长以及如分子、粒子的运动等物理现象。可以用分形图设计壁纸。地板革、地板砖、纺织品等日用品的图案。众所周知,迭代函数系统是构造分形图的重要方法之一,IFS为计算机模拟一些自然现象的真实感图形提供了一个有力的工具。而IFS理论的提出为分形图像处理开拓了广阔的前景,特别是利用带有概率的IFS即IFSP算法绘制分形图,与单纯迭代法绘图相比,不仅实现的代码简单,而且降低了对计算机硬件的要求。

本文应用分形的思想在图像边缘提取方面进行了初步的探讨经,并结合matlab实验更直观的观察实验结果充分理解理论的知识。

—IV—

黑龙江八一农垦大学毕业设计(论文) 1 绪论

1.1分形理论的发展

当今,科学技术水平不断跨越发展,人类对自己所处的神秘世界的认识 正在深化与飞跃。自然科学也经历着深刻的变革,继牛顿力学和量子力学后发展起来的非线性科学,正在改变着人们对世界的看法,形成了一种新的自然观,促进着一大批新兴学科的孕育和发展,并从根本上影响着现代科学的逻辑体系。在多种概念和方法相互交叉和汇合下,作为当代新兴学术思潮中的一门非线性综合学科——分形理论诞生了。它的出现就像二十世纪初的量子力学一样,为人类提供了一种对自然现象总体上全新的观念。它新颖的指导思想和独特的分析方法随即被各个学科竞相引入,以新的驱动力推动它们的发展,成为人们研究和处理自然界和人类社会中无处不在的貌似无规则形体的强有力的理论工具,从而深化了人类对大自然的认识,诱发了一些新的学科生长点。分形理论打破了各个学科间的壁垒,把思考者从相距甚远的各个学术领域吸引到一块共同的领地。它的应用几乎涉及自然科学的各个领域,甚至社会科学,前景十分诱人,引起了人们普遍的关注[1]。

在分形理论诞生前,人们分析问题的方法,要么是在宏观上的,如牛顿力学、欧氏几何学等,要么就是在微观上的,如量子力学等。分形则是指一类介于有序和无序、微观与宏观之间的中间状态,它的外表特征一般是极其破碎、无规则和复杂的,而其内部特征则是具有自相似性和自仿射性。自相似性是指把考察对像的部分沿各个方向以相同比例放大后,其形态与整体相同或相似,而自仿射性是指把考察对像整体以不同的比例放大后,其形态与整体相同或相似。因此,分形是指组成部分以某种方式与整体相似的形,其基本观点是,处理的对像总是具有非均匀性和自相似性。分形理论使人们能够以新的观念、新的手段透过扑朔迷离的无序的混乱现象和不规则的形态,来揭示隐藏在复杂现象背后的规律,局部和整体之间的本质联系。分形几何学是由分形理论发展而来的描述客观物体复杂性的系统理论。在现实世界中,实物可以分为两大类:一类是规则的、光滑的可以用一维点、 二维点直线段、三维的多面体来逼近形体,研究这一范畴的学科称为传统几何学,如欧氏几何、黎曼几何等;另一类则是不光滑的、不规则的,具有精细的结构或自相似性特征,不能用传统的几何语言描述的自然形态,研究这一范畴的学科称为分形几何学。人们早就熟悉从规则的实物中抽象出诸如圆、直线、平面等几何概念,并用传统的几何学对它做了很好的描述。然而对于自然界和科学试验中出现的凹凸而不圆润、破碎而不连续、粗糙而不光滑的形(或无序系统),传统几何学却是无能为力的。例如宇宙中星系和星团的分布、海岸线与地形地貌、河流与水系、棉絮团似的云烟和冬天里美丽的雪花、动物的花纹、植物的叶形、生长得枝枝岔岔的树木、

—1—

黑龙江八一农垦大学毕业设计(论文) 以及地震波能量的传播、太阳黑子的爆炸??;有一些是在人类日常生活中不断出现的,例如股市上天天发布的股票价格曲线、水文测量中的水位变化曲线等。这些实体没有规则、光滑图形的形式美,却有着无穷嵌套的结构和韵律美;没有规则图形的那种均匀性和对称性,但在尺度变化上表现出对称性。从多尺度下,有相同的粗糙度和破碎度[2]。也就是说,这些形体除了本身的大小外,不存在能表示其内部构造的特征尺度。没有特征尺度,就必须考虑尺度的变化,这正是传统几何学无法克服的固有难题。从另一个角度出发,在不同尺度下表现出相同的粗糙度和破碎度意味着标度变换下的不变性。这种不变性就是无标度性。在无标度性下,这些不规则、破碎、粗糙的实体意味着是规则的。分形几何没有特征尺度(无标度性),它含有一切尺度的要素,在每一尺度上都有丰富的细节。所谓事物的复杂性也就在于此。分形几何正是基于无标度性或相似性的,弥补了传统几何学的不足,给出了自然界中复杂几何形态的一种定量描述。

1.2 图像处理的发展

至20世纪70年代末以来,由于数字技术和微电子技术的迅猛发展给数字图像处理提供了先进的技术手段,基于计算机的图像处理学也就从信息处理、自动控制系统论、计算机科学、数据通信、电视技术等学科中脱颖而出,成为研究“图像信息的获取、传输、存储、变换、显示、理解与综合利用”的一门崭新学科。图像处理学所包含的内容是相当丰富的,根据抽象程度的不同可分为三个层次:狭义图像处理、图像分析和图像理解。狭义图像处理着重强调在图像之间进行的变换,主要是指对图像进行各种操作以改善图像的视觉效果,或对图像进行压缩编码以减少所需存储空间或传输时间、传输通路的要求。它是一个从图像到图像的过程。图像分析主要是对图像中感兴趣的目标进行检测和测量,从而建立对图像的描述[3]。图像分析是一个从图像到数值或符号的过程。图像理解超出了目前的所学范围,则不加以讨论。

1.2.1图像处理学与相关学科的关系

图像处理学是一门综合性边缘学科。从研究范围来看,它与计算机图形学、模式识别、计算机视觉等既有联系又有区别。

图形学原本指用图形、图表、绘图等形式表达数据信息的科学。而计算机图形学研究的是如何利用计算机技术来产生这些形式。和图像分析对比,两者的处理对象和输出结果正好相反。计算机图形学试图从非图像形式的数据描述来生成图像。另一方面,模式识别与图像分析则比较相似,只是前者试图把图像抽象成符号描述的类别,它们有相同的输入,而不同的输出结果之间可较方便的进行转换。至于计算机视觉主要强调用计算机去实现人的视觉功能,其中涉及图像处理的许多技术,但目前的研究内容主要与图像理解相结合。

由此看来,以上学科相互联系,相互交叉,它们之间并没有绝对的界限。

—2—

黑龙江八一农垦大学毕业设计(论文) 虽各有侧重但又相互补充[4]。另外以上各学科都得到了人工智能、神经网络、遗传算法、模糊逻辑等新理论、新工具、新技术的支持,所以它们又都在近年得到了长足发展。

1.3 论文的主要研究目的及内容

分形几何弥补了欧氏几何等传统几何学的不足,它描述了自然界物体的自相似性,这种自相似性可以是确定的,也可以是统计意义上的。由于分形集可以用简单的迭代方法生成复杂的自然景物、用分形参数有效度量物体的复杂性,因此分形与图像之间存在着一种自然联系,而正是这种联系,奠定了分形理论用于图像处理的基础,开辟了图像应用的新领域。分形图像处理技术是分形理论与图像处理技术结合的产物。目前在图像处理领域中,分形理论在模拟自然景物生成、图像分割、纹理特征提取、纹理分类、图像编码压缩和模式识别上得到了很好的运用。严格地讲,自然界没有真正的分形,而分形只是数学中理想的分形、分形维数与尺度无关,即在任何尺度下都保持常数。自然界中的分形往往具有一个最小标度和最大标度,在无标度区间内,才存在满足自相似性。自然图像也不完全满足分形模型,但绝大多数图像在一定尺度上是具有自相似性的,而且越接近理想分形,无标度区间就越大。我们可以通过在无标度区间用线性回归法估计出分形参数值。如何能找到最大满足分形模型的无标度区间,使计算所得的分形参数更精确,是目前分形领域研究的一个热点。 基于分形理论在图像处理的技术主要集中在两方面,即迭代函数系统和分数维,前者主要用于图像压缩编码和图像生成,后者几乎涵盖了分形图像处理的其它方法。分形维数打破了传统几何学只在整数维,如一维、二维、三维空间讨论几何形体,用非整数维描述不规则形体,揭示其内在的特征。本文不仅对最重要的分形参数-分形维的概念,提取分形维的方法、分形维在图像处理中的具体应用作详尽的论述,提出几种切实可行的,准确的、快速的,易于操作的图像分形维计算方法,而且还对其它的分形参数,如随机场参数、分形维常数在图像处理中的应用作有意义的探讨。分形用于图像的边缘检测的依据是图像统计的自相似性。本文关注的是分形理论在图像边缘检测与图像分割上的应用及分形理论算法的仿真[5]。

—3—

黑龙江八一农垦大学毕业设计(论文) 2 数字图像处理技术

2.1图像处理的概念及内容

数字图像处理又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。 数字图像处理与模拟图像处理的根本不同在于,它不会因图像的存储、传输或复制等一系列变换操作而导致图像质量的退化。只要图像在数字化时准确地表现了原稿,则数字图像处理过程始终能保持图像的再现。 按目前的技术,几乎可将一幅模拟图像数字化为任意这主要取决于图像数字化设备的能力。现代扫描仪可以把每个像素的灰度等级量化为16 位甚至更高,这意味着图像的数字化精度可以满足很高应用需求。对计算机而言,不论数组大小,也不论每个像素的位数多少,其处理程序几乎是一样的。换言之,从原理上讲不论图像的精度有多高,处理总是能实现的,只要在处理时改变程序中的数组参数就可以了。回想一下图像的模拟处理,为了要把处理精度提高一个数量级,就要大幅度地改进处理装置,这在经济上是极不合算的。 图像可以来自多种信息源,它们可以是可见光图像,也可以是不可见光的波谱图像(例如X 射线图像、 射线图像、超声波图像或红外图像等)。从图像反映的客观实体尺度看,可以小到电子显微镜图像,大到航空照片、遥感图像甚至天文望远镜图像。这些来自不同信息源的图像只要被变换为数字编码形式后,均是用二维数组表示的灰度图像(彩色图像也是由灰度图像组合成的,例如RGB 图由红、绿、蓝三个灰度图像组合而成)组合而成,因而均可用计算机来处理。即只要针对不同的图像信息源,采取相应的图像信息采集措施,图像的数字处理方法适用于任何一种图像。 图像处理大体上可分为图像的像质改善、图像分析和图像重建三大部分,每一部分均包含丰富的内容。由于图像的光学处理从原理上讲只能进行线性运算,这极大地限制了光学图像处理能实现的目标。而数字图像处理不仅能完成线性运算,而且能实现非线性处理,即凡是可以用数学公式或逻辑关系来表达的一切运算均可用数字图像处理实现。目前图像处理的应用领域非常广泛,如下表所总结的。

—4—

黑龙江八一农垦大学毕业设计(论文) 表1 图像处理应用的领域

学科

应用

物理、化学 结晶分析、谱分析

生物、医学 细胞分析、染色体分类、X 射线成像、CT 等 环境保护 地质

水质及大气污染调查等 资源勘测、地图绘制、GIS 等

农业、林业 农业物估产、植被分布调查 渔业 气象 通信 工业 军事 法律

鱼群分布调查等 卫星云图分析

传真、电视、多媒体通信 工业探伤、机器人、产品检测 导弹导航、军事侦察 指纹识别

2.2图像处理的边缘检测

边缘是图象最基本的特征. 边缘检测在计算机视觉、图象分析等应用中起着重要的作用,是图象分析与识别的重要环节,这是因为子图象的边缘包含了用于识别的有用信息. 所以边缘检测是图像分析和模式识别的主要特征提取手段。

所谓边缘是指其周围像素灰度后阶变化或屋顶状变化的那些像素的集合,它存在于目标与背景、目标与目标、区域与区域,基元与基元之间。 因此它是图象分割所依赖的重要的特征,也是纹理特征的重要信息源和形状特征的基础;而图象的纹理形状特征的提取又常常依赖于图象分割。 图象的边缘提取也是图象匹配的基础,因为它是位置的标志,对灰度的变化不敏感,它可作为匹配的特征点。

图象的其他特征都是由边缘和区域这些基本特征推导出来的. 边缘具有方向和幅度两个特征. 沿边缘走向,像素值变化比较平缓;而垂直与边缘走向,则像素值变化比较剧烈. 而这种剧烈可能呈现阶跃状,也可能呈现斜坡状。 边缘上像素值的一阶导数较大;二阶导数在边缘处值为零,呈现零交叉。

经典的、最简单的边缘检测方法是对原始图象按像素的某邻域构造边缘算子. 由于原始图象往往含有噪声,而边缘和噪声在空间域表现为灰度有比较大的起落;在频域则反应为同是高频分量,这就给边缘检测带来困难.

Mandelbrot 和Hildreth 提出的零交叉边缘检测是一种十分有效的方法,他们认为:其一,图象强度的突变将在一阶导数中产生一个峰或等价于二阶导数中产生一个零交叉(Zero - Crossing) ;其二,图象中的强度变化是以不同的

—5—

黑龙江八一农垦大学毕业设计(论文) 尺度出现的,故应该用若干大小不同的算子才能取得良好的检测效果。 边缘检测的实质是采用某种算法来提取出图像中对象与背景间的交界线。我们将边缘定义为图像中灰度发生急剧变化的区域边界。图像灰度的变化情况可以用图像灰度分布的梯度来反映,因此我们可以用局部图像微分技术来获得边缘检测算子。经典的边缘检测方法,是对原始图像中像素的某小邻域来构造边缘检测算子。以下是对几种经典的边缘检测算子进行理论分析,并对各自的性能特点作出了比较和评价

?f?fj为图像的梯度,▽f(x,y)包含灰度变化信息 不妨记:▽f(x,y)=i+

?x?y记:e(x,y)=f2x?f2y为▽f(x,y)的梯度,e(x,y)可以用作边缘检测算子。为了简化计算,也可以将e(x, y)定义为偏导数fx与fy的绝对值之和:

e(x,y)=|fx(x,y)|+|fy(x,y)|

以这些理论为依据,提出了许多算法,常用的边缘检测方法有:Roberts边缘检测算子、Sobel边缘检测算子、Prewitt边缘检测算子、Canny边缘检测算子、Laplace边缘检测算子等等[6]。

2.3图像处理的几何变换

1.图像平移

图像平移就是将图像中所有的点都按照指定的平移量水平、垂直移动。设?x0,y0?为原图像上的一点,图像水平平移量为tx,垂直平移量为ty,则平移后点?x0,y0?坐标将变为?x1,y1?。

显然?x0,y0?和?x1,y1?的关系如下:

?x1?x0?tx??y1?y0?ty (2-1)

用矩阵表示如下:

?x1??10tx??x0??y???01t??y?y??0??1?? ??1????001????1??(2-2)

对该矩阵求逆,可以得到逆变换: x1??10tx??x0??

?x0?x1?tx?y???01t??y??y??0?即 ?1???y0?y1?ty??????10011??????—6—

(2-3)

黑龙江八一农垦大学毕业设计(论文) 这样,平移后的图像上的每一点都可以在原图像中找到对应的点。例如,对于新图中的(0,0)像素,代入上面的方程组,可以求出对应原图中的像素(-tx,-ty)。如果tx或ty大于0,则(- tx,- ty)不在原图中。对于不在原图中的点,可以直接将它的像素值统一设置为0或则255(对于灰度图就是黑色或白色)。同样,若有点不在原图中,也就说明原图中有点被移出显示区域。如果不想丢失被移出的部分图像,可以将新生成的图像宽度扩大|tx |,高度扩大| ty |。 2.图像镜像

图像的镜像变换分为两种:一种是水平镜像,另外一种是垂直镜像。图像的水平镜像操作是将图像的左半部分和右半部分以图像垂直中轴线为中心镜像进行对换;图像的垂直镜像操作是将图像上半部分和下半部分以图像水平中轴线为中心镜像进行对换[7]。其数学变换如下:

设图像高度为lHeight,宽度为lWidth,原图中?x0,y0?经过水平镜像后坐标将变为?lWidth?x0,y0?,其矩阵表达式为:

?x1???10lWidth??y0?? 0 1 0 ? ? x ? ? y ? ? (2-4)1?????0? ?1??00 1???????1??

逆运算矩阵表达式为: ?x0???10lWidth??x1??y???01??y??x0?lWidth?x0 即 (2-5) 01????????y0?y1?1??1????00???1??同样,?x0,y0?经过垂直镜像后坐标将变为?x0,lHeight?y0?,其矩阵表达式

为:

x??100??x0??1??0 y ? ? ? 1 ? ? y ? (2-6) lHeight10?????? ? 1 ? 1 ? 1?????00????

逆运算矩阵表达式为:

0??x0??x1??10?x0?x1 (2-7) ?y???0?1lHeight??y?即?y?lHeight?y1?0?1????0??1??1????00???1??

3.图像的转置

图像的转置操作是将图像像素的x坐标和y坐标互换。该操作将改变图像的大小,图像的高度和宽度将互换。其数学变换如下:

—7—

黑龙江八一农垦大学毕业设计(论文)

x010x?1????0? (2-8)?y???100??y??1????0? ??1????001????1??

它的逆矩阵表达式是:

?x1??010??x0??y???100??y?即?x0?y1 (2-9)

??1????0??y0?x1??1????001????1??2.4图像处理的滤波

公元六十年代中期,逆滤波(去卷积)开始被广泛地应用于数字图象复原。

从那以后,去卷积就成了图像复原的一种标准技术。 逆滤波复原法也叫做反向滤波法,基本原理如下:

如果退化图像为g(x,y),原始图像为f (x,y),在不考虑噪声的情况下,其退化模型用下式表示 g(x,y)???????????f(?,?)h(x??,x??)d?d? (2-10)

这显然是一卷积表示。由傅立叶变换的卷积定理可知下式成立:

G(u,v)?H(u,v)?F(u,v) (2-11) 式中,G(u,v), H(u,v),F(u,v)分别是退化图像g(u,v),点扩散函数h(u,v),原始图像f(u,v)的傅立叶变换。由(2-11)式可得

F(u,?)?G(u,v) (2-12) H(u,v)f(x,y)?F?1[F(u,v)]?F?1[G(u,v)] (2-13) H(u,v)

这意味着,如果己知退化图像的傅立叶变换及“滤波”传递函数,则可以求得原始图像的傅立叶变换,经反傅立叶变换就可求得原始图像f(u,v)。这里,

G(u,v)除以H(u,v)起到了反向滤波的作用。这就是逆滤波复原法的基本原理。

在有噪声的情况下,逆滤波原理可写成如下形式:

G(u,v)?H(u,v)?F(u,v)?N(u,v) (2-14)

F(u,v)?G(u,v)N(u,v) (2-15) ?H(u,v)H(u,v)式中N(u,v)是噪声n(u,v)的傅立叶变换。

利用式(2-13)和式(2-15)进行复原处理时可能会发生下列两种情况: 即在u,v平面上有些点或区域会产生H(u,v)?0或H(u,v)非常小的情况,在这种情况下,即使没有噪声,也无法精确地恢复f(u,v)。另外,在有噪声存在时,在H(u,v)的邻域内,H(u,v)的值可能比N(u,v)的值小得多,因此,由式(2-15)

—8—

黑龙江八一农垦大学毕业设计(论文) 得到的噪声项可能会非常大,这样也会使f(u,v)不能正确恢复。一般来说,逆滤波法不能正确估计H(u,v)的零点,因此必须采用一个折中的方法加以解决。实际上,逆滤波不是用1/H(u,v),而使采用另外一个关于u,v的函数W(u,v)。它的处理框图如图1所示:

W(u,v) H(u,v) G(u,v)?(u,v) ???? FF(u,v) ? N(u,v)?

图1实际的逆滤波处理框图

在没有零点并且也不存在噪声的情况下,图中模型包括了退化和恢复运算,退

化和恢复总的传递函数可用H(u,v) W(u,v)来表示。此时有:

F(u,v)?[H(u,v).W(u,v)]f(u,v) (2-16) F(u,v)是f(u,v)的傅立叶变换。H(u,v)叫做输入传递函数,W(u,v)叫做处理传

递函数,H(u,v) W(u,v)叫做输出传递函数。

一般情况下,H(u,v)的幅度随着u,v平面原点的距离增加而迅速下降,而噪声项N(u,v)的幅度变化是比较平缓的。在远离u,v平面的原点时N(u,v)的值就

H(u,v)会变得很会变得很大,而对于大多数图像来说F(u,v)却变小,在这种情况下,噪声反而占优势,自然无法满意地恢复出原始图像。这一规律说明,应用逆滤波时仅在原点令域内采用内选择[8]:

1方能奏效。换句话说,应使W(u,v)在下述范围

H(u,v)?12u2?v2?w0? (2-17) W(u,v)??H(u,v)222u?v?w0?1??0的选择应该使H(u,v)的零点排除在此邻域之外。除此之外图像处理的滤波方法还有

许多例如最小二乘滤波法,中值滤波法,维纳滤波和自适应中值滤波在这我们就不一一列举了,他们都是作为图像复原的方法。

—9—

黑龙江八一农垦大学毕业设计(论文) 2.5本章小结

在本章我学到了图像处理基本知识及应用,还介绍了数字图像处理的几何变换和图像的复原在图像的复原中主要介绍了几种滤波方法和傅立叶变换的相关知识和数学算法的应用。

—10—

黑龙江八一农垦大学毕业设计(论文) 3 分形理论

3.1分形理论的概念

分形(fractal)这个名词是Mandelbrot在20世纪70年代为了表征复杂图形和复杂过程首先引入自然科学领域的,它的原意是不规则的,支离破碎的物体。

分形可以分为规则分形和不规则分形。在分形名词使用之前,一些数学家就提出过不少复杂和不光滑的集合,如Cantor集,Koch曲线,Sierpinski垫片,地毯和海绵等。这些都属于规则的分形图形,它们具有严格的自相似性。而自然界的许多事物所具有的不光滑性和复杂性往往是随机的,如蜿蜒曲折的海岸线;变换无穷的布朗运动轨迹等。这类曲线的自相似性是近似的或统计意义上的,这种自相似性只存在于标度不变区域,超出标度不便区域,自相似性不复存在。这类曲线为不规则分形[9]。

迄今为止,分形还没有一个严格的定义。1982年Mandelbrot将分形定义为Hausdorff维数大于拓扑维数的集合。1986年,Mandelbrot给出了一个更广泛,更通俗的定义:分形是局部和整体有某种方式相似的形,该定义强调图形中的局部和整体之间的自相似性

3.2几种典型的分形

1三分康托集

1883年,德国数学家康托(G.Cantor)提出了如今广为人知的三分康托集。三分康托集是很容易构造的,然而,它却显示出许多最典型的分形特征.它是从单位区间出发,再由这个区间不断地去掉部分子区间的过程

图2三分康托集的构造过程

来构造出来的(如上图)。其详细构造过程是:第一步,把闭区间[0,1]平均分为三段,去掉中间的 1/3 部分段,则只剩下两个闭区间[0,1/3]和[2/3,1]。第二步,再将剩下的两个闭区间各自平均分为三段,同样去掉中间的区间段,这时剩下四段闭区间:[0,1/9],[2/9,1/3],[2/3,7/9]和[8/9,1]。第三步,重复删除每个小区间中间的 1/3 段。如此不断的分割下去, 最后剩

—11—

黑龙江八一农垦大学毕业设计(论文) 下的各个小区间段就构成了三分康托集。三分康托集的 Hausdorff维数是0.6309。

2 Koch 曲线

1904年,瑞典数学家柯赫构造了 “Koch曲线”几何图形。Koch曲线大于一维,具有无限的长度,但是又小于二维,并且生成的图形的面积为零。它和三分康托集一样,是一个典型的分形。根据分形的次数不同,生成的Koch 曲线也有很多种,比如三次 Koch 曲线,四次 Koch 曲线等。下面以三次 Koch 曲线为例,介绍 Koch 曲线的构造方法,其它的可依此类推[10]。

图3 Koch 曲线的生成过程

三次Koch曲线的构造过程主要分为三大步骤:第一步,给定一个初始图形一条线段;第二步,将这条线段中间的 1/3 处向外折起;第三步,按照第二步的方法不断的把各段线段中间的 1/3 处向外折起。这样无限的进行下去,最终即可构造出Koch曲线。其图例构造过程如右图所示(迭代了 6 次的图形)。

3 julia集和mandelbrot集

Julia集是由法国数学家Julia和Faton在发展了复变函数迭代理论的 础上获得的。在复平面C上,利用复变函数f(z)?z2?c迭代可生成一个非常复杂的集。

令z?x?iy,c?a?ib,x,y,a,b?R,由f(z)?z2?c可得

22?xk?1?xk?yk?a (3-1) ??yk?1?2xkyk?b迭代过程中,如固定参数c,而考虑z得变化,则称Z平面为动态平面,按上式反复迭代得到得数集,称为Julia集。在进行迭代时,每次以新得坐标替代旧坐标进行下一次迭代。为了观察逃离速度,可以规定一个距离函数

D?(x?iy)(x?iy)?x2?y2 (3-2)

计算例如D>20所需迭代次数,如果某点经过300次迭代仍未逃离,就可以认为它属于J集,对于趋于内部得点也可以类似处理[11]。

在计算机上画映射f(z)?z2?c的Julia集可用逃逸时间算法,算法如下: (1).选定参数C?p?iq,,取xmin?ymin?a(如?1.5),xmax?ymax?b(如1.5),取R充分大。定义发散区域V?{(x,y)?R2|x2?y2?R2},当某轨道进入区域V时,就认为该轨道是发散的,设?x?(xmax?xmin)/(M?1),?y?(ymax?ymin)/(N?1)。对所

—12—

黑龙江八一农垦大学毕业设计(论文) 有象素点(i,j),i?1,2,..., M,j?1,2,...,N完成下面过程。,(2).设x0?xmin?i*?x,y0?ymin?j*?y,k?0.

(3).作迭代:利用迭代方程 作迭代,由(xk,yk)计算(xk?1,yk?1),k=k+1; (4).作判别:计算r?x2?y2,

(i) 若r>R,取颜色k,转到第4步; (ii) 若k=K,取颜色0,转到第4步; (iii) 若r≤R,且k

(5).在象素点(i,j)上着第k种颜色,转到下一个点并从第1步开始

Mandelbrot集被认为是把自相似的外形与无限变化的性质结合起来的一个分形。J集是给定C后对复变量Z进行分类;而M集则是在复参数C填充的平面上对参数C进行分类得到的图形。

3.3分形的自相似性

自相似原则和迭代生成原则是分形理论的重要原则。它表征分形在通常的几何变换下具有不变性,即标度无关性。由自相似性是从不同尺度的对称出发,也就意味着递归。分形形体中的自相似性可以是完全相同,也可以是统计意义上的相似。标准的自相似分形是数学上的抽象,迭代生成无限精细的结构,如科契(Koch)学画曲线、谢尔宾斯基(Sierpinski)地毯曲线等。这种有规分形只是少数,绝大部分分形是统计意义上的无规分形。

这里再进一步介绍分形的分类,根据自相似性的程度,分形可以分为有规分形和无规分形,有规分形是指具体有严格的自相似性,即可以通过简单的数学模型来描述其相似性的分形,比如三分康托集、Koch曲线等;无规分形是指具有统计学意义上的自相似性的分形,比如曲折连绵的海岸线,漂浮的云朵等。

3.3.1分数的布朗随机场

科学家首先提出用分数布朗运动描述具有统计自相似性的一类随机过程现象,将分数布朗运动用于描述空间分布的随机场,得到分数布朗随机场(FBRF)。有关概念简述如下:

定义一:设H 满足0

BH(0,w)?b00BH(t,w)?[1/A(H?0.5)]{?[(t?s)??H?0.5?(?S)H?0.5t]dB(s,w??(t?s)0H?0.5 (3-3)

dB(s,w)}则称BH(s,ω)为分数布朗运动(FBM),其中 H 为Hurst 指数,b0 为初

始值,ω为样本空间Ω,H=1/2 时为通常的布朗运动。

定义二:设BH(t)为一高斯随机场,对于0

—13—

黑龙江八一农垦大学毕业设计(论文) Pr((BH(t??t)?BH(t))/||?t||H?y)?F(y) (3-4)

则称BH(t)为各向同性的FBRF,其中F(y)为零均值高斯随机变量的分布函数,Pr(·)为概率测度,||·||表示范数。分数布朗随机场BH(t)具有如下性质:

E|BH(t??t)?BH(t)|?E|BH(t?1)?BH(t)|||?t||HE|BH(t??t)?BH(t)|?E|BH(t?1)?BH(t)|||?t||222H (3-5)

由以上性质可知,FBRF 增量的一、二阶绝对矩是各向同性的。Pentland证明

了大多数自然景物表面所映射成的灰度图像在一定尺度范围内满足各向同性的FBRF,并将FBRF 作为自然景物图像的描述模型。从(3-2)和(3-3)式可以看出,Hurst 指数决定了一个分数布朗运动[12],由Hurst 指数可得图像表

面的分形维数

D =Dt?1?H (3-6) 式中 DT 为图像表面的拓扑维数。维数是几何对象的一个重要特征量,它是几何对象中一个点的位置所需的独立坐标数目。在分形学里维数可以为分数,通过分形维数我们可以描述和测量分形的特性。在实际中,常用Richardson 定律来估计分形维数

A(?)?K?2?D (3-7) 中ε=1,2,3 …为尺度因子,A(ε)是尺度ε下的度量特征值,D 是分形维数,d 是拓扑维数,K 为分形系数。对于理想的均匀的二维灰度图像,A(ε)为图像表面积测度,拓扑维数为2,则有

A(?)?K?2?d (3-8) 对于分形维数,人们倾注了许多注意力,并指出分形维数是图像表面不规则程度的一种度量,它反映了图像灰度曲面的粗糙程度。

3.4边缘检测分形特征的提取

本文将分析另一个分形参数,得到一种新的边缘提取特征。考虑(3-8)式中的系数K。对于一个理想的平坦的分形曲面,其分形维数D 为2,此时系数K 为灰度曲面的表面积。给定一个理想分形曲面,K 为一常数,若图像是由不同的纹理曲面组成,或是分形曲面中嵌入了非分形对象,例如自然场景中存在人造目标,K 将不再是一个常数,而是尺度ε的函数,它反映了尺度变化的情况下曲面面积的变化,取不同的尺度,由(3-8)式可得

K?[A(?1)?A(?2)]/(?12?D??22?D) (3-9)

式中 ε1,ε2 为不同尺度,可见K 值反映了图像表面积随尺度变化的空间变化率。对式两端取对数,有式(3-8)表示在logA(ε)―logε坐标系下的一条直

log A(e ) ??(2 ??D) log e ??log K (3-10)

—14—

黑龙江八一农垦大学毕业设计(论文) 线,logK 恰为该直线在纵坐标轴logA(ε)上的截距,K的大小相当于该尺度下的灰度曲面面积。由此可以看出,系数K 实际上是一个类似于面积的分形参数,称之为面积度量。对于光滑的曲面,面积度量较小,起伏的曲面面积度量较大。所以,面积度量同分形维数一样反映了图像表面的粗糙程度,即图像灰度曲面的“起伏程度”。实验表明,面积度量在许多方面往往能更好地体现不同曲面的特性。对二维数字图像而言,分形维数2

U(i,j,0)?B(i,j,0)?f(i,j)U(i,j,?)?max{U(i,j,??1)?1,max(m,n)ea[U(m,n,??1)]} (3-11) B(i,j,?)?min{B(i,j,??1)?1,min(m,n)ea[B(m,n,??1)]}3.5IFS基本理论及主要提取方法

??(X,)其压缩因子,上)的压缩映射wi:?(X)对于分形空间(?(x)hci(i?1,2,...n.定义映射W:?(X)??(X),即:

W(B)?w1(B)?w2(B)?...?wn(B)??wi(B),?B??(X) (3-12)

i?1n则W是压缩映射,且压缩因子c?max{c1,c2,...,cn},即:

h(W(A),W(B))?c*h(A,B),?A,B??(X)。 (3-13)由这n个压缩映射wi:?(X)??(X),及其压缩因子ci(i?1,2,...n)组成一个迭代

函数系统IFS[14]。

压缩映射不动点定理:设{X;w1,w2,...,wn;c}是(X,d)上的一个IFS,压缩变换存在唯一的不动点A??(X),满足A?W(A)??wi(A),而且不动点可以通

i?1n过迭代得到,即A?limWn(B),?B??(X)。拼贴定理:给定集合L??(X)和ε>0,

n??—15—

黑龙江八一农垦大学毕业设计(论文) n若能找到一个IFS{X;w1,w2,...,wn;c}使h(L,?w(L))??,则:

i?1h(L,A)?h(L,?wi(L))i?1n1?c??1?? (3-14)

其中:A是IFS不动点,亦即吸引子。

该理论说明,对于L,如能找到一个IFS,使L恰为IFS的吸引子,则L完全由IFS确定。根据不动点A是复制它本身的变换W(A)构造出来的,因此,对L进行压缩变换,然后把它们粘贴到一起,用“拼贴”W(L)近似表示L。 (1)已有的提取IFS码的方法

对于规则的图形如我们熟知的Sierpinski垫片,因为我们已经知道压缩仿射变换中的六个参数所起的作用,再根据图形本身的几何关系,其IFS码可以比较容易的得出。对于不规则但具有分形特性的图形提取IFS码的方法主要有以下几种: (2)最初的方法

对那些经典的已知的某景物的IFS参数,改变它的某些参数值或加入随机因素来得到此景物新的IFS参数,然而对那些无已知参数的景物就无能为力了。

(3)三点法

我们知道,一般具有分形特征的自然景物图形,它必然存在一些有特征性的点。由于整体和局部的相似性, 整体存在一些有特征性的点, 局部也必然相应地存在一些有特征性的点。由于局部是由整体仿射变换而来,则局部上的一些有特征性的点必然也是由整体上的一些有特征性的点经过同样的仿射函数变换而来[15]。同时我们还知道, 通过三对点(整体上的三个点和局部上对应的三个点), 我们就可求出一个仿射变换。基于这个道理, 我们只要在整体轮廓上选取三个有特征性的点,然后再在各个局部轮廓上按相同的顺序选取对应的三个有特征性的点。这样根据这些点,就可以获得整体到各个局部的仿射变换。

具体步骤如下:

1.在原图上取三点:?x1,y1?﹑?x2,y2?﹑?x3,y3?,然后在每一个拼贴

''子图上相应的取三点: ?x1',y1'?﹑?x2,y2?﹑?x3',y3'?。

选取点时注意:选取的三点最好不使之形成钝角三角形,并尽量能体现图形的整体信息,如选最上、最左、最右或最下的三点小拷贝上点的位置要尽量与整体上点的位置相对应,即小拷贝上取的三点尽量为整体上的三点在压缩映射作用下在小拷贝上的象。

2.将这六个点分别代入公式 ?x'?ax?by?e (3-15) ??y'?cx?dy?f—16—

黑龙江八一农垦大学毕业设计(论文) 其中,x,y为原图坐标,x',y'为拼贴子图坐标。

3.采用三点对应解线性方程组的方法来求取仿射变换系数a,b,c,d,e,f。 4.各个仿射变换的概率可以通过p?ad?bc计算得到,最后应对概率集归一化,使其和?pj(j?1,2,...,n)?1。至此可得到所求的IFS码。

3.6本章小结

在本章主要学习了分形理论的基本知识其中重点是IFS理论他为我们以后的学习打下了很好的基础,还有分形理论应用于图像边缘检测和图像的分割中的知识,在图像边缘检测中主要用到的是分形自相似性在图像分割中主要体现在分型特征等知识。

—17—

黑龙江八一农垦大学毕业设计(论文) 4 基于分形理论算法的研究及MATLAB仿真

4.1MATLAB相关知识

在科学研究和工程应用中,往往要进行大量的数学计算,其中包括矩阵运算。这些运算一般来说难以用手工精确和快捷地进行,而要借助计算机编制相应的程序做近似计算。目前流行用Basic、Fortran和C语言编制计算程序,既需要对有关算法有深刻的了解,还需要熟练地掌握所用语言的语法及编程技巧。对多数科学工作者而言,同时具备这两方面技能有一定困难。通常,编制程序也是繁杂的,不仅消耗人力与物力,而且影响工作进程和效率。为克服上述困难,美国Mathwork公司于1967年推出了“Matrix Laboratory”(缩写为Matlab)软件包,并不断更新和扩充。目前最新的5.x版本(windows环境)是一种功能强、效率高便于进行科学和工程计算的交互式软件包。其中包括:一般数值分析、矩阵运算、数字信号处理、建模和系统控制和优化等应用程序,并集应用程序和图形于一体便于使用的集成环境中。在此环境下所解问题的Matlab语言表述形式和其数学表达形式相同,不需要按传统的方法编程。不过,Matlab作为一种新的计算机语言,要想运用自如,充分发挥它的威力,也需先系统地学习它[16]。但由于使用Matlab编程运算与人进行科学计算的思路和表达方式完全一致,所以不象学习其它高级语言——如Basic、Fortran和C等那样难于掌握。实践证明,你可在几十分钟的时间内学会Matlab的基础知识,在短短几个小时的使用中就能初步掌握它.从而使你能够进行高效率和富有创造性的计算。Matlab大大降低了对使用者的数学基础和计算机语言知识的要求,而且编程效率和计算效率极高,还可在计算机上直接输出结果和精美的图形拷贝,所以它的确为一高效的科研助手。自推出后即风行美国,流传世界。

综上所述,Matlab语言有如下特点: (1)编程效率高

它是一种面向科学与工程计算的高级语言,允许用数学形式的语言编写程序,且比Basic、Fortran和C等语言更加接近书写计算公式的思维方式,用Matlab编写程序犹如在演算纸上排列出公式与求解问题。因此,Matlab语言也可通俗地称为演算纸式科学算法语言由于它编写简单,所以编程效率高,易学易懂。

(2)用户使用方便

Matlab语言是一种解释执行的语言(在没被专门的工具编译之前),它灵活、方便,其调试程序手段丰富,调试速度快,需要学习时间少。人们用任何一种语言编写程序和调试程序一般都要经过四个步骤:编辑、编译、连接以及执行和调试。各个步骤之间是顺序关系,编程的过程就是在它们之间作瀑布

—18—

黑龙江八一农垦大学毕业设计(论文) 型的循环。Matlab语言与其它语言相比,较好地解决了上述问题,把编辑、编译、连接和执行融为一体。它能在同一画面上进行灵活操作快速排除输入程序中的书写错误、语法错误以至语意错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种比VB还要简单的语言。

具体地说,Matlab运行时,如直接在命令行输入Mailab语句(命令),包括调用M文件的语句,每输入一条语句,就立即对其进行处理,完成绩译、连接和运行的全过程。又如,将Matlab源程序编辑为M文件,由于Mat1ab磁盘文件也是M文件,所以编辑后的源文件就可直接运行,而不需进行编译和连接。在运行M文件时,如果有错,计算机屏幕上会给出详细的出锗信息,用户经修改后再执行,直到正确为止。所以可以说,Mat1ab语言不仅是一种语言,广义上讲是一种该语言开发系统,即语言调试系统。

(3)扩充能力强

高版本的Matlab语言有丰富的库函数,在进行复杂的数学运算时可以直接调用,而且Matlab的库函数同用户文件在形成上一样,所以用户文件也可作为Matlab的库函数来调用。因而,用户可以根据自己的需要方便地建立和扩充新的库函数,以便提高Matlab使用效率和扩充它的功能。另外,为了充分利用Fortran、C等语言的资源,包括用户已编好的Fortran,C语言程序,通过建立Me调文件的形式,混合编程,方便地调用有关的Fortran,C语言的子程序。

(4)语句简单,内涵丰富 Mat1ab语言中最基本最重要的成分是函数,其一般形式为[a,b,c??]=fun(d,e,f,??),即一个函数由函数名,输入变量d,e,f,??和输出变量a,b,c??组成,同一函数名F,不同数目的输入变量(包括无输入变量)及不同数目的输出变量,代表着不同的含义(有点像面向对象中的多态性。这不仅使Matlab的库函数功能更丰富,而大大减少了需要的磁盘空间,使得Matlab编写的M文件简单、短小而高效。

(5)高效方便的矩阵和数组运算

Matlab语言象Basic、Fortran和C语言一样规定了矩阵的算术运算符、关系运算符、逻辑运算符、条件运算符及赋值运算符,而且这些运算符大部分可以毫无改变地照搬到数组间的运算,有些如算术运算符只要增加“·”就可用于数组间的运算,另外,它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。在此基础上,高版本的Matlab已逐步扩展到科学及工程计算的其它领域。因此,不久的将来,它一定能名符其实地成为“万能演算纸式的”科学算法语言。

(6)方便的绘图功能

Matlab的绘图是十分方便的,它有一系列绘图函数(命令),例如线性坐标、对数坐标,半对数坐标及极坐标,均只需调用不同的绘图函数(命令),

—19—

黑龙江八一农垦大学毕业设计(论文) 在图上标出图题、XY轴标注,格(栅)绘制也只需调用相应的命令,简单易行。另外,在调用绘图函数时调整自变量可绘出不变颜色的点、线、复线或多重线。这种为科学研究着想的设计是通用的编程语言所不及的。

总之,Matlab语言的设计思想可以说代表了当前计算机高级语言的发展方向,在不断使用中,人们会发现它的巨大潜力[17]。

4.2自相似性分形图形的算法及MATLAB实现

我们选择具有代表性的分形树为例,我们观察到二维分形树的树干和树枝具有良好的自相似性,即图形局部放大后可以与整体等同。

构造一个递归函数,给出两个象素点的位置便可将两点连线画出,递归出口为线段长度的一个限值,可以根据需要和硬件条件设定,具体思路如下:

首先,我们向函数传递的是树根或树枝末端点坐标以及线段长度、与横坐标所夹角度,通过函数调用得到的是树顶或树枝顶端点坐标。

其次,假定A(x1,y1)为枝末节点,B(x2,y2)为枝顶节点,AB与主枝所夹角

y?y度为θ,亦即相对角度,l为树枝长度,则21?tan?,进而我们很容易得出

x2?x1?x2?x1?l*cos??x2?x1?l*cos??,利用这一方程组,我们就可以根据A点坐???y2?y1?l*sin??y2?y1?l*sin?标、线段长度、所夹角度将B点坐标求出,两点连线AB即为所求。

然后,我们注意到AB既可看为主枝,又可视为侧枝,这是又自相似性决定的,满足了递归的性质:

在AB上取一点A1作为树根或枝末节点,偏转角度选定,线段长度确定,同理亦可得到树顶或枝顶节点B1,连线画出A1B1,接着再在A1B1上取点画线,依此类推,直至线段长度小于某一限值,这时便将分形树描绘出[18]。以上是我用分形理论算法实现的过程,下面是我用matlab仿真来实现的结果和实验过程。

function tree(n,a,b) n=8;a=pi/8;b=pi/8; x1=0;y1=0;

x2=0;y2=1;

plot([x1,x2],[y1,y2]) hold on

[X,Y]=tree1(x1,y1,x2,y2,a,b); hold on

W=tree2(X,Y); w1=W(:,1:4); w2=W(:,5:8);

—20—

黑龙江八一农垦大学毕业设计(论文) w=[w1;w2];

for k=1:n

for i=1:2^k

[X,Y]=tree1(w(i,1),w(i,2),w(i,3),w(i,4),a,b); W(i,:)=tree2(X,Y); end w1=W(:,1:4); w2=W(:,5:8); w=[w1;w2]; end

function [X,Y]=tree1(x1,y1,x2,y2,a,b) L=sqrt((x2-x1)^2+(y2-y1)^2); if (x2-x1)==0 a=pi/2;

else if (x2-x1)<0

a=pi+atan((y2-y1)/(x2-x1)); else

a=atan((y2-y1)/(x2-x1)); end end

x3=x2+L*2/3*cos(a+b); y3=y2+L*2/3*sin(a+b); x4=x2+L*2/3*cos(a-b); y4=y2+L*2/3*sin(a-b); a=[x3,x2,x4]; b=[y3,y2,y4]; plot(a,b) axis equal hold on

X=[x2,x3,x4];

Y=[y2,y3,y4];

function w=tree2(X,Y) a1=X(1);b1=Y(1); a2=X(2);b2=Y(2); a3=X(1);b3=Y(1); a4=X(3);b4=Y(3);

w=[a1,b1,a2,b2,a3,b3,a4,b4];

—21—

黑龙江八一农垦大学毕业设计(论文)

图4 分形树

4.3IFS码/IFSP码模拟图形的算法及实现

迭代函数系统IFS的理论和方法是分形自然景观模拟的理论基础。迭代函数系统采用确定性与随机性相结合的方法生成植物秆茎或叶片。“确定性”指用以迭代的规则是确定性的,它们由一组仿射变换构成;“随机性”指迭代过程是不确定的,每一次迭代用哪一个规则,不是预先定好的,而是随机的。设最终要生成的图形为M,它要满足下述几何方程:

M?w1?w2?…?wN (4-1)

上式含义是,随机地从wi(i?1,…,N)中挑选一个迭代规则迭代一次,然后在随机地在wi(i?1,…,N)中选一个规则迭代下一次,不断重复此过程,最后生成地极限图形M就是欲求地形态[19]。

具体的提取IFS码,可以参照上一章,这里我们再简单的描述一下。 IFS的压缩映射wi的参数设计,由分形图的相似结构,每个压缩映射wi是由平移、旋转和比例3种变换以及它们的复合变换构成的仿射变换,二维形式为:

?x??ai???wi?y???ci?1??0???bidi0ei??x????fi??y? (4-2)

?1????1?其中参数ai,bi,ci,di由旋转、比例变换所决定的实数;ei,fi由平移变换所决定的实数。

—22—

黑龙江八一农垦大学毕业设计(论文) IFS吸引子自然景观的模拟总是在一个矩形区域内进行,取度量空间

????0,1??*0,1?。因此,参数ai,bi,ci,diei,fi的??0,1?*?0,1?,d?,由于wi??0,1?*?0,1取值范围在??1,1?;ei的取值影响植物x方向的偏离程度,一般取值为正。

在平面欧氏空间R2中,仿射变换有下面两种形式:

?x??r*cos??r*sin???x??e?f1????(4-3) ??????, ?y??r*sin?r*cos???y??f??x??r*cos?r*sin???x??e?f2???? ??????, (4-4)yr*sin??r*cos?yf????????其中θ称为转角,r是相似比。相似变换可以分解成以下四种基本的相似变换: (1) 旋转变换R?:

?x??cos??sin???x?R????? ??? (4-5)

ysin?cos?y??????它是绕坐标原点逆时针旋转角度θ的变换。

(2) 反射变换R:

?x??10??x? R??????? (4-6)

?y??0?1??y?它是以x轴为反射壁的变换。 (3) 伸缩变换Ф:

?x??r0??x? ???????? (4-7)

y0ry??????它是沿极线方向伸缩r倍的变换。 (4) 平移变换T:

?x??x??e? T???????? (4-8)

?y??y??f?这样上述相似变换可以分别写成这些基本变换的复合:

f1?T???R?,f2?T???R??R. (4-9) 下面举Koch曲线为例:

图5 koch曲线

它可以看成是一单位长线段经过下列4个仿射变换迭代生成。

?1/30??1/30???0,f???1. 缩小至原长1/3;伸缩变换???,?? ??01/3??01/3??1/30?2. 缩小至1/3????旋转60:

?01/3?—23—

黑龙江八一农垦大学毕业设计(论文) ?cos60oR???osin60??sin60o??1/2?3/2??e??1/3?(4-10)?;右平移1/3:???????? ?f0cos60o??1/2??????3/2?1/3*sin60o??x??1/3???(4-11) ? o???1/3*cos60??y??0??x??x??1/3*cos60of?????R??T????o?y??y??1/3*sin60得出IFS码a?1/6,b??3/6,c?3/6,d?1/6,e?1/3,f?0;

?1/30?o

3. 缩小至1/3: ???;旋转-60: ??01/3??cos(?60o)?sin(?60o)??1/2R?????oo?sin(?60)cos(?60)?????3/23/2? ?; (4-12)

?1/2??e??1/2?向右平移1/2,上移3/6:?????;

?f??3/6??x??x??1/3*cos(?60o)?1/3*sin(?60o)??x??1/2?f?????R??T??????(4-13) ?oo???yyy?????1/3*sin(?60)1/3*cos(?60)????3/6?d?1/6,e?1/2,f?3/ 6;得出IFS码:a?1/6,b?3/6,c??3/6,?1/30?4 缩小至1/3: ????;右平移2/3:

?01/3??e??2/3??x??x??1/30??x??2/3? (4-14) ?????;f?????T??????????。f0yy01/3y0??????????????生成的IFS码如下:a?1/3,b?0,c?0,d?1/3,e?2/3,f?0;

表2 Koch曲线IFS码

W1 W2 W3 W4

a b c 0

d e f 0

1/3 0 1/6 0.288 1/3 0

1/3 0

1/6 -0.288 0.288

0

1/6 1/3 0 1/3 2/3 0

-0.288 1/6 1/2 0.288

接下来,我们利用这里的方法作出一个新的分形图形编码,同样是先提取IFS码, Koch曲线的得出基本相同,只是提取出的IFS码不同,结果如下

—24—

黑龙江八一农垦大学毕业设计(论文) 表3 Sierpinski地毯IFS码

W1

a 1/2

b 0

c 0

d 1/2

e 0

f 0 0

W2 -1/4 0.433 -0.433 -1/4 1/4 0.433 W3 -1/4 -0.433 0.433 -1/4 1/2

而在自然景物的模拟中,我们则需要用到IFSP码,这是一种随机算法,具体步骤如下:

1.取初始点x0,及总的迭代步数; 2. 以概率pi(i?1,2,…,N)选取变换fi;

3.把fi作用到x0上,得新点,记newx?fi(x0); 4.令x0?newx;

5. 重返2,进行下一次迭代。当迭代次数大于某预先给定的数,开始在屏幕上打出点。

利用以上分析,我们得出Sierpinski三角形。以上是我用分形理论算法实现的过程,下面介绍下我用matlab算法实现过程和结果[20]。

function sierpinski_ifs(n,w1,w2,w3) n=10000; w1=1/3; w2=1/3; w3=1/3;

M1=[0.5 0 0 0 0.5 0]; M2=[0.5 0 0.5 0 0.5 0]; M3=[0.5 0 0.25 0 0.5 0.5]; x=0;y=0; r=rand(1,n); B=zeros(2,n); k=1;

for i=1:n if r(i)

a=M1(1);b=M1(2);e=M1(3);c=M1(4);d=M1(5);f=M1(6); else if r(i)

a=M2(1);b=M2(2);e=M2(3);c=M2(4);d=M2(5);f=M2(6); else if r(i)

a=M3(1);b=M3(2);e=M3(3);c=M3(4);d=M3(5);f=M3(6); end end end x=a*x+b*y+e;

—25—

黑龙江八一农垦大学毕业设计(论文) y=c*x+d*y+f; B(1,k)=x; B(2,k)=y; k=k+1; end

plot(B(1,:),B(2,:),'.','markersize',0.1)

图6 Sierpinski三角形

4.4本章小结

本章主要介绍了分形算法绘制图形和matlab软件的使用它是本文的重点也是难点我们要运用matlab语言去实现分形算法中的效果图,掌握matlab编程语句的要领及分形理论中的算法和编码绘制图形的方法。

—26—

结论 结论

通过论文中的理论知识对本文所做的工作做出如下结论:

(1)了解分形几何,什么是分形及分形的主要研究内容和应用领域并结合图形处理知识研究分型提取边缘特征。

(2)依据分形迭代函数系统的基本理论IFS生成Sierpinski三角形、Sierpinski金字塔、分形树等各种图形。讨论IFS理论再通过matlab实验分析更好的理解分形图形的算法。

(3)通过对逃逸时间的算法,和Mandelbrot集;Julia集的了解大胆的设想下让分形图应用于现实产品的设计。

但是分形图介于有序和无序、宏观各微观、简单性与复杂性、随机性与确定性之间的一种过渡状态,在研究的过程中,我们发现还存在很多需要完善的地方。

—27—

参考文献 参考文献

[1] Mandelbrot B B. The fractal geometry of nature[M]. San Francisco: Freeman,1982.

[2] Pentland A P. Fractal-Based Description of Natural Scenes[J]. IEEE Trans. on PAMI, 1984.

[3] Peleg S. Multiple resolution texture analysis and classification[J]. IEEE Trans. on PAMI, 1984.

[4]Barnsley M F.Fractals Everywhere(School Edition).Academic Press,1933 [5] Fisher V.Fraction Compression-Theory And Applications.Spring-Verlag,1994 [6] 朱虹. 数字图像处理基础[M]. 北京: 北京科学出版社. 2005.

[7] 余成波. 数字图像处理及MATLAB实现[M]. 重庆: 重庆大学出版社. 2003.

[8] 陈书海,傅录祥. 实用数字图像处理[M].北京: 北京科学出版社. 2005. [9] 张晶. 图像边缘检测算法的研究[D]. 山东大学硕士学位论文. 2006 [10] 韩磊 .MATLAB在数字图象处理中的应用[J]. 电脑知识与技术. 2008. [11] 卢洋,张旭秀.图像边缘检测算法的对比分析与研究[J]. 太原科技. 2009.

[12] 熊秋菊,杨慕生. 图像处理中边缘检测算法的对比研究[J]. 机械工程与自动化. 2009.

[13] 尹建媛. 图像处理中边缘检测算法的研究[J]. 科技信息. 2008 ?14? 沙震,阮火军.分形和拟和[M].杭州:浙江大学出版社,2005.

?15? 孙霞,吴自勤.分形原理及其应用[M].合肥:中国科技大学出版社,2003. [16]曾建军,李世航.面向科学与工程问题的语言MATLAB[M].合肥:安徽大学出版社.2003.

[17]谢和平,薛秀谦.分形应用中的数学基础与方法[M].北京:北京科学出版社,1998. [18]闫玉宝,分形图的IFS码设计[J].江苏工业学院学报 2003.12 第15卷第4期.

[19] 张志涌.精通matlab 6.5版[M].北京:北京航空航天大学出版社. [20] 郝文化.MATLAB 图形图像处理应用教程[M].北京:中国水利水电出版社.

—28—

致谢 致谢

在完成设计当中,我的指导老师许杰,他热心细致的指导给了我很大的帮助,包括我的进展情况、在程序当中所遇到的困难情况和应该怎样解决这些困难、特别是在我程序出现问题时,他都会与我一起来探讨应该怎样去做一直到最后阶段他都在时刻指导着我的设计。直到完成论文定稿和设计的成功他才松了口气。许杰老师为我能够按时完成设计给了很大的帮助,他在我的设计当中起了重要的作用。

本次的毕业设计是我在大学时光中最后一次综合性实践练习,老师们在百忙之中抽出时间为我指导,最后我要感谢黑龙江八一农垦大学老师们给予我的翔和照顾并道声:老师,您辛苦了!我会用我的成绩给予回报。

—29—

附录 附录

分形树程序tree.h

function tree(n,a,b)

% tree(8,pi/8,pi/8),n为分形树迭代次数 %a,b为分枝与竖直方向夹角

%x1,y1,x2,y2为初始线段两端点坐标,nn为迭代次数 n=8;a=pi/8;b=pi/8; x1=0;y1=0; x2=0;y2=1; plot([x1,x2],[y1,y2]) hold on

[X,Y]=tree1(x1,y1,x2,y2,a,b); hold on W=tree2(X,Y); w1=W(:,1:4); w2=W(:,5:8);

% w为2^k*4维矩阵,存储第k次迭代产生的分枝两端点的坐标, % w的第i(i=1,2,?,2^k)行数字对应第i个分枝两端点的坐标 w=[w1;w2]; for k=1:n

for i=1:2^k

[X,Y]=tree1(w(i,1),w(i,2),w(i,3),w(i,4),a,b); W(i,:)=tree2(X,Y); end w1=W(:,1:4); w2=W(:,5:8); w=[w1;w2]; end

%由每个分枝两端点坐标(x1,y1),(x2,y2)产生两新点的坐标(x3,y3),(x4,y4),画两分枝图形,并把%(x2,y2)连同新点横、纵坐标分别存储在数组X,Y中 function [X,Y]=tree1(x1,y1,x2,y2,a,b) L=sqrt((x2-x1)^2+(y2-y1)^2); if (x2-x1)==0 a=pi/2;

—30—

附录 else if (x2-x1)<0

a=pi+atan((y2-y1)/(x2-x1)); else

a=atan((y2-y1)/(x2-x1)); end end

x3=x2+L*2/3*cos(a+b); y3=y2+L*2/3*sin(a+b); x4=x2+L*2/3*cos(a-b); y4=y2+L*2/3*sin(a-b); a=[x3,x2,x4]; b=[y3,y2,y4]; plot(a,b) axis equal hold on X=[x2,x3,x4]; Y=[y2,y3,y4];

%把由函数tree1生成的X,Y顺次划分为两组,分别对应两分枝两个端点的坐标,并存储在一维%数组w中 function w=tree2(X,Y) a1=X(1);b1=Y(1); a2=X(2);b2=Y(2); a3=X(1);b3=Y(1); a4=X(3);b4=Y(3);

w=[a1,b1,a2,b2,a3,b3,a4,b4];

IFS算法画Sierpinski三角形程序sierpinski_ifs.h

function sierpinski_ifs(n,w1,w2,w3) %sierpinski_ifs(10000,1/3,1/3,1/3) %w1,w2,w3出现频率 n=10000; w1=1/3; w2=1/3; w3=1/3;

M1=[0.5 0 0 0 0.5 0]; M2=[0.5 0 0.5 0 0.5 0]; M3=[0.5 0 0.25 0 0.5 0.5];

—31—

附录 x=0;y=0;

% r为[0,1]区间内产生的n维随机数组 r=rand(1,n); B=zeros(2,n); k=1;

% 当0

a=M1(1);b=M1(2);e=M1(3);c=M1(4);d=M1(5);f=M1(6); else if r(i)

a=M2(1);b=M2(2);e=M2(3);c=M2(4);d=M2(5);f=M2(6); else if r(i)

a=M3(1);b=M3(2);e=M3(3);c=M3(4);d=M3(5);f=M3(6); end end end x=a*x+b*y+e; y=c*x+d*y+f; B(1,k)=x; B(2,k)=y; k=k+1; end

plot(B(1,:),B(2,:),'.','markersize',0.1)

—32—

黑龙江八一农垦大学 毕业论文(设计)成绩单

院系 学号 周数 16 专 业 入学时间 班 级 指导教师 职称 学生姓名 起止日期 论文(设计)题目 指 导 教 师 评 语 评 阅 人 评 语 答辩小组评语 评分 评阅人签名 指导教师签名 基于分形理论的MATLAB仿真技术研究 年 月 日 年 月 日 答辩小组负责人签名 年 月 日 指导教师 评阅人 答辩小组 平均分 五级制等级 备注:本成绩单一式二份一份装订在毕业论文(设计)中一份入学生学籍档案。

本文来源:https://www.bwwdw.com/article/oul7.html

Top