四川大学-本科毕业论文-参考.doc_第1页
四川大学-本科毕业论文-参考.doc_第2页
四川大学-本科毕业论文-参考.doc_第3页
四川大学-本科毕业论文-参考.doc_第4页
四川大学-本科毕业论文-参考.doc_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

本科毕业论文(设计) 题 目 基于图像分割的图像抠取算法的研究与实现基于图像分割的图像抠取算法的研究与实现 学 院 计算机学院计算机学院 专 业 计算机科学与技术计算机科学与技术 学生姓名 杨明川杨明川 学 号 06430413080643041308 年级 0606 指导教师 吕泽均吕泽均 教务处制表 二 一 年 月 日 四川大学本科毕业论文 基于图像分割的简单图像抠取算法的研究与实现 基于图像分割的图像抠取算法的研究与实现基于图像分割的图像抠取算法的研究与实现 计算机科学与技术专业 学生 杨明川 指导老师 吕泽均 摘要摘要 随着数码设备在日常生活中的大量使用,以及各种图片在各个领域越来 越广泛的应用,围绕着图片处理而出现的问题也变得越来越复杂。对于大多数没有学 过专业图像处理软件的用户来说,想要从图片中抠出自己感兴趣的目标,或者是进而 对其更换背景都是一件很困难的事。因此一个简单的,智能的进行目标抠取的软件是 极为必要的。而完成这类软件的核心就是一个处理效果良好的图像抠取算法的实现。 GrabCut 算法是目前在图像分割领域取得良好效果的数字图像抠取算法。综述了 GrabCut 算法的实现过程,并且介绍了根据算法抠取出来的感兴趣目标与背景所实现 目标/背景保存,目标图像简单变换,目标背景替换等一系列辅助功能的完成方法。最 后在总结章节中,阐述了实现过程的一些特色与存在的问题,并且提出对未来的研究 方向的展望和个人自己的理解。 主题词主题词 图像分割;Grabcut 算法;背景替换; 四川大学本科毕业论文 基于图像分割的简单图像抠取算法的研究与实现 Studying and implementing image cutouting algorithm based on image segmentation Computer Science Student: Yang Ming-chuan Adviser: Lv Ze-jun AbstractAbstract With the digital equipment widely used in daily life, and a variety of pictures in the more extensive application in various fields, centered on the problems of image processing become more and more complex. For the most users who did not learn the professional image processing software and want to cutout the interest target from the picture, or then replace the background are a very difficult thing. Therefore, a simple, intelligent software of cutoutting the target from the image is very necessary. The core of thecompletion of such software is a nice implementing of a good image-matting algorithm. GrabCut digital matting algorithm had achieved good results in the current field of image segmentation. In this paper ,it reviews the implementing if GrabCut algorithm ,and introduces some of the functions implementing like goals/background saving,simply change on the target image, target background replacement,etc. After the introduction of function implementing, there are a demonstrating of the results in the corresponding function.In the last chapter, experimental results and problems are concluded, and propose directions for future research prospects and personal understanding. KeyKey WordsWords Image segmentation ; GrabCut ; Background replace 四川大学本科毕业论文 基于图像分割的简单图像抠取算法的研究与实现 目目 录录 1 1 绪论绪论.1 1 1.1 课题研究的背景和意义 .1 1.2 图像抠取软件及成果的现状.1 1.2.1 综合化的图像处理软件 .2 1.2.2 单一化的图像处理软件 .3 1.3 本文所做的主要工作.3 2 2 图像分割简述图像分割简述.4 4 2.1 图像分割概述 .4 2.1 图像分割的基本方法 .4 3.1.1 经典的图像分割方法 .4 3.1.2 新颖的图像分割方法 .7 3 3 算法实现的工具及技术简介算法实现的工具及技术简介.9 9 3.1 MFC 概述4.9 3.1.1 MFC 编程框架.9 3.1.2 MDI 应用程序构成.11 3.2 GDI+介绍 .13 3.2.1 GDI 简介5.13 3.2.2 GDI+介绍 .13 3.3 OPENGL 简介 .15 3.3.1 OpenGL 工作流程.15 3.3.2 OpenGL 图形操作步骤.15 4 4 GRABCUTGRABCUT 图像抠取算法简介图像抠取算法简介 .1717 4.1 GRAPHCUTST算法简介 .17 4.2 GRABCUT算法简介.17 4.3 GRABCUT算法准备.18 4.3.2 高斯混合模型介绍 .18 4.3.2 GrabCut 算法中的数据结构.19 4.4 算法过程描述.20 4.4.1 算法初始化过程 .20 4.4.2 自学习的高斯组件 .20 4.4.3 最小分割 .20 四川大学本科毕业论文 基于图像分割的简单图像抠取算法的研究与实现 4.4.4 算法流程介绍 .21 5 5 GRABCUTGRABCUT 算法及辅助功能的实现算法及辅助功能的实现 .2323 5.1 GRABCUT 算法的实现 .23 5.1.1 数据结构介绍及初始化 .23 5.1.2 高斯混合模型的建立的实现 .27 5.1.3 高斯混合模型的学习过程的实现 .29 5.2 GRABCUT 算法实现后的效果演示 .29 5.3 目标对象处理.30 5.3.1 可分离目标对象的标记 .30 5.3.2 目标图像大小的调整 .32 5.3.3 目标图像/合成图像的保存 .33 6 6 总结与展望总结与展望.3838 6.1 总结.38 6.2 展望.38 参考文献参考文献.3939 声声 明明.4040 致致 谢谢.4141 附录附录 1 1 关键代码关键代码 .4242 附录附录 2 2 翻译(原文和译文)翻译(原文和译文).4747 四川大学本科毕业论文 基于图像分割的简单图像抠取算法的研究与实现 0 1 绪论绪论 本章节对课题研究的背景和意义,以及目前可用于实现图像抠取的软件的现状进行了 介绍。并在最后就本文所做的主要安排进行了简述。 1.1 课题研究的课题研究的背景和意义背景和意义 随着电子数码设备的普及,以及电子计算机,互联网的广泛使用,人们对各种图像的 使用的频度的增加,广大用户对一些图像进行一些简单处理的需求也越来越多。然而现 在存在的一些专业图像处理软件并没能够很好的解决大部分用户的一些极为简单的需求。 如如何从图像中抠取出自己想要的对象如一个人,一辆车,再如如何简单快速的替换一 些图片的背景这种极为简单的图像处理需求对一些不会使用专业图像处理软件的用户来 说却非常困难的一件事。大家都渴望出现一个简单却智能的图像处理软件,它不需要用 户掌握及其高难度的操作,以及记忆大量操作命令,而仅仅是提供一个单一功能却易操 作的可进行目标抠取,背景替换的图像处理软件。 并且对于会使用专业图像处理软件的用户来说,一个简单的目标抠取,背景替换的图 像处理软件能够为他们在制作一些复杂项目时提供大量的素材来源,不用为了得到一张 图像中的一个目标,而花费大量时间去利用专业软件从中抠取图像对象。他只需要一些 简单操作就可快速得到他想要的效果。 除此之外,随着计算机视觉理论和算法研究的发展,以及计算机硬件性能的不断提高, 越来越多的智能处理系统的广泛使用,以及复杂情况下处理要求的攀升,对于做为很多 图像处理技术基础的图像分割目标提取技术就显得更为需要简单化,智能化。简单是指 的交互简单,而智能则是指系统能更加智能的理解用户的需求。这样就可以在更少的交 互下得到更为满意的处理效果。这样一个好的图像分割算法的实现成果,就会变得极为 有意义。 而满足以上用户需求的软件实现的核心问题就是如何实现一个在图像分割领域内有着 良好表现的图像抠取算法。在算法实现的基础上想要制作出一个具有市场价值的软件就 变得极为容易进行了。并且这个实现可以不仅仅可以被做为主体设计出一个软件,也可 以成为一些大型系统的嵌入模块。 GrabCut 算法只要求极少的用户交互,因此在今后的研究发展中结合一些其他的智能 算法是完全可能实现完全智能化的,它可以自动找出图片中的有意义对象,并且实现多 个对象的组合,以便能够更好满足用户的需求。为用户提供更为简单直接的服务。 综上所述,对于 GrabCut 图像抠取算法的研究与实现是极为价值的。 1.2 图像抠取软件及成果的现状图像抠取软件及成果的现状 在当前图像处理领域, 图像处理软件非常多,大部分都能实现从图像中抠取出部分 四川大学本科毕业论文 基于图像分割的简单图像抠取算法的研究与实现 1 图像的需求 ,并且它们还基本满足了用户极大部分其他的图像处理需求。这些图像处理 软件中,要么一些软件过于大型专业, 虽然提供了异常强大的功能 ,却让初学者望而 却步,让专业人士效率不高;要么 只是提供一项或几项简单的服务,只是为了大量普通 用户才设计出炉的过于傻瓜,而功能太过简单,创意难以得到有效发挥,产品品质和 处理速度也良莠不齐。 大致可将这些软件分为两类,一是综合化的图像处理软件,二是 单一化的图像处理软件。 1.2.1 综合化的图像处理软件 这类软件的数量非常多,它们虽然重心各有不同,但是从它们所提供的功能中是可以 完成图像抠取的操作的,不过由于这些软件都是极为专业化,且功能众多且强大,对单 纯为了完成图像目标抠取的用户来说,就有一点大材小用的感觉了。这儿列举几个功能 强大,较为流行的软件。 (1)PhotoShop Photoshop 是由 Adobe 公司推出的跨越 PC 和 MAC 两个平台的的大型图像处理软件. 它功能强大,操作界面友好, 主要应用于图像处理、广告设计的一个电脑软件。ADOBE PHOTOSHOP 最初的程序是由 Mchigan 大学的研究生 Thomas 创建,后经 Knoll 兄弟以及 ADOBE 公司程序员的努力 ADOBE PHOTOSHOPf 进行了很多功能上的改进,成为优秀 的平面设计编辑软件。经过 3.0,4.0,5.0,5.5 的不断升级,直到目前最新的 cs5 版,功能强大,处 理领域也宽广,逐渐成为使用广泛的图像处理软件.Photoshop 支持众多的图像格式,对图像 的常见操作和变换都 做得非常精细;此处,它还拥有异常丰富的插件(在 Photoshop 中叫滤 镜),使得 photoshop 的功能更为全面。然而由于其功能异常强大使得并不是大部分用户都 能在短时间内流利的使用其一些简单功能。 (2)Turbo Photo Turbo Photo 是一个以数码影像为背景,面向 数码相机普通用户和准专业用户而 设计的一套集图片管理,浏览,处理,输出为一身的软件系统。它能完成数码摄影相 关的大部分后期工作,拓展数码摄影的创作手段,从而深化数码相机的应用。它包括 两个部分:Turbo Photo 相册和 Turbo Photo 编辑器。Turbo Photo 相册是一个照 片管理、浏览与批处理为一体的软件。它是 Turbo Photo 软件的一部分。 Turbo Photo 编辑器的所有功能均围绕如何 让照片更出色的主题设计。每个功能都 是针对 数码相机本身的特点和最常见的问题。 (3)光影魔术手 光影魔术手是国内 比较受欢迎的图像处理软件 ,曾被很多主流期刊评为最佳图像 处理软件。光影魔术手是一个对数码照片画质进行改善及效果处理的软件。它在处理 数码图像及照片时 非常高速、且实用。光影魔术手能够满足绝大部分照片后期处理的 需要,批量处理功能非常强大。它无须改写注册表,能够非常方便的移除 。 四川大学本科毕业论文 基于图像分割的简单图像抠取算法的研究与实现 2 1.2.2 单一化的图像处理软件 (1) KnockOut KnockOut是Corel公司出品的专业去背景软件,能够处理复杂背景下的精细目标。去 背景操作就是制作遮罩的过程,所谓的去背景,指的是将特定的主体从背景中分离出来, 以便进行其它的后续设计。KnockOut不仅能够处理复杂情况其对背景单纯时的处理方式 也同样保持其它软件同样的简单化,快速化。对于一般的去背景需求,KnockOut的处理 效果都及为准确,快速,且其需要的操作方便,容易。KnockOut图像抠取软件使用的是 KnockOut自然景物抠取算法,而Knockout 方法的特点在于模型简单、处理速度快,但其 处理效果不佳。其仅仅是在处理光滑图像有着较好的效果。 (2)可牛影像 可牛影像是新一代的图像处理软件,独有美白祛痘、瘦脸瘦身、明星场景、多照片叠 加等功能,更有 50 余种照片特效,数秒即可制作出影楼级的专业照片。可牛影像的有照 片编辑功能。可牛影像还具有智能修复功能,只要点击一下鼠标,就可以对照片进行自 动亮白,自动白平衡,自动对比度调整等操作。此外可牛影像还拥有数十种风格特效和 影楼特效,能够使用户快速为照片添加艺术效果;而且它还使得去红眼,背景虚化这些 看似复杂的操作,变得相当简单,即使是新手也能得到很好的处理效果。另外,可牛影 像的智能抠图功能,能够使用户在较小的操作后得到抠取结果,并且能够对处理后的结 果进行编辑,使得结果更加满足用户的需求。 此外,可牛影像具有补光、柔和等 6 大自动修复能力,素描、黑白、怀旧等数十 种另类效果, 以及其他一些延伸功能的实现使得其具有了全套的照片的编辑功能。 1.3 本文所做的主要工作本文所做的主要工作 本论文的内容结构安排如下: 第一章为绪论。首先介绍了课题研究的背景与意义,再对目前可用于图像抠取的软件 或研究成果进行了简单的介绍。最后列出了本论文的主要安排和作者所做的主要工作。 第二章为图像分割简述。在这个章节中对图像分割进行了概述,并就其目前使用基本 方法进行了介绍。 第三章为算法实现所涉及的工具及技术简介。在这章中对 MFC,GDI+,OpenGL 等在算 法实现过程中所用到的工具或技术做了简要的阐述。 第四章为 GrabCut 图像分割方法简介。首先对 GrabCut 算法做了简介,再就 GrabCut 算法的思想及过程进行了详细的阐述。 第五章为 GrabCut 算法及其辅助功能的实现。本章详细的介绍了 GrabCut 算法在 MFC 程序框架下的实现过程,并对针对算法处理结果所进行的辅助功能的实现进行了介 绍。 第六章为总结与展望。在这个章节中对 GrabCut 算法的研究与实现过程所做的工作进 四川大学本科毕业论文 基于图像分割的简单图像抠取算法的研究与实现 3 行了总结,并对图像分割算法及建立在算法实现基础上图像抠取软件的前景进行了展望。 2 图像分割简述图像分割简述 2.1 图像分割概述图像分割概述 在计算机视觉领域的研究中,图像分割是图像处理,模式识别和人工智能等许多领 域中一个十分重要且困难的问题.是计算机视觉技术中首要的,重要的关键步骤,也是非常 基础的研究领域. 图像分割就是从图像中把感兴的目标与背景分割开来,或从图像中识 别和解释出有意义的物体实体而提取不同的图像特征的操作。而在图像分割中提出的感 兴趣的目标可以是指视野中的运动物体,可以通过一系列的图像序列中分析得到,也可 以是指一些可分离的物体对象,如人,苹果等,这儿主要是指两物体间没有存在明显的 重叠,可以通过分析单幅或者序列图像得到。图像分割是一个经典的难题,到目前为止即 不存在一种通用的图像分割方法,也不存在一种判断是否分割成功的标准. 按照图像分割的定义,分割出的区域需要同时满足均匀性和连通性的条件。其中均 匀性是指该区域中的所有像素点都满足基于灰度,纹理,色彩等特征的某种相似性准则; 连通性是指在该区域内存在连接任意两点的路径1,1。而这些区域或者几个区域的联合就 可以表示一个感兴趣的对象。这样通过对分割区域或者区域组合的的提取从而实现感兴 趣目标的提取。而目标提取的结果的好坏对后续的处理操作有着非常重要的影响。因此, 有效的图像分割对如目标检测,身份确认和行为理解与处理等中高层次的任务非常重要。 而在视频编码,图像检索,人机互动,运动监测等研究领域中,往往只考虑感兴趣区域 的像素,所以好的图像分割技术往往能促进这些课题的研究发展。 图像分割在实际应用中应用的范围非常广泛,仅仅是在对医学图像的处理方向, 就存在着如肿瘤与其他病变的定位,计算机辅助手术,解剖学研究等分支,更不要说其 在卫星图像中的目标定位,交通控制,机器视觉等研究方向的广泛应用。并且随着计算 机应用范围的增加,一些新的图像分割的应用领域也会慢慢诞生出来。另外,由于计算 机图像处理技术是对人类视觉的模拟,而人类的视觉系统又是一种高度自动化的生物图 像处理系统。而目前的研究对这个系统的认识又不是很足,因此,要完全形成与人类视 觉功能同样强大的计算机视觉系统,还需要一个漫长的过程。而就需要对一些基础研究 领域加强研究使其首先完整化,才能有望实现计算机视觉。总之,图像分割的重要地位 必定只会得到的加强,而不会有所衰退。 2.1 图像分割的基本方法图像分割的基本方法 3.1.1 经典的图像分割方法 这些图像分割的方法都是经过了很长的发展过程,拥有很强的理论依据,是目前发展极 四川大学本科毕业论文 基于图像分割的简单图像抠取算法的研究与实现 4 为成熟的算法,虽然在处理的场景要求有一些严格,且处理效果不是很好,但毕竟是最初的 处理算法,对其加深了解有助于更好的理解图像分割的基本内容和处理方式,对后续的新 颖的图像分割算法的学习也能起到一些作用,甚至做一些比对作用. 1) 基于阈值的分割 阈值法是一种比较传统的图像分割方法,也是经典的、流行的图像分割方法之一,是最 为简单的一种图像分割方法.图像阈值分割利用了图像中要提取的目标物与其背景在灰度 特性上的差异,把图像视为具有不同灰度级的两类区域的结合.选取一个合适的阈值,以确 定图像中每一个像素点应该属于目标还是背景区域,从而产生相应的二值图像. 阈值分割 可以通过全局的信息如整个图象的灰度直方图,或者局部信息如灰度共生矩阵实现。而 根据其使用的信息类型的区别可将其分为全局阈值法和局部阈值法,或者单值法和多值 法1,2。在多区域的分割前提下,我们的目的是获得一个阈值集合(t1,t2, ,tk ) ,使 得所有灰度值满足 f(x,y)ti,ti+1 的象素点构成第 i 个区域,其中(i=0,1, ,k)。 阈值分割法,也可以看成是一个分类问题,比如单阈值分割中,相当于把所有象素点分 成两类:目标和背景。 阈值分割图像的基本原理,可用下式作一般表达式: E Z,f x yZ (2-1) ,g x y 其他 B Z 其中 Z 为阈值,是图像灰度级范围内的任一个灰度级集合, , 为任意选定的,f x y E Z B Z 目标和背景灰度级。由此可见,基于阈值的图像分割技术,如果想要比较为复杂的背景下 将目标分辨并将其形状完全提取出来,则对于阈值的选取是非常重要的。阈值的高低完全 确定了一些关键点是属于背景还是目标,也就完全影响了最后的分割结果1,3。 2) 区域增长技术 区域增长有时也称为区域生长.区域生长技术是一种简单的图象分割技术,它仅适用 于高反差的简单图象的分割,不能满足灰度渐变或以某种纹理而不是灰度来表征不同区 域的那些复杂图象的分割。区域增长在很多领域都受到了很大的关注,其在计算机视觉 的智能化应用中也具有很大的作用。并且其在图像的纹理信息分割方面具有很好的处理 效果,它可以在灰度与局部特征值信息上进行简单的聚类分类,也可以利用统计均匀性 检测进行复杂的分裂与合并处理。该算法的核心思想就是将在像素某一特征上具有相似 性的像素集标记为一个区域,然后具体在每一个区域中通过某种准则选出一个种子点。再 对种子点周围的领域进行考查,找出具有相似性的像素,将其规为种子点所在的区域。 再将这些新的点做为新的种子生长点,重复上面的步骤,直至没有再满足条件的点出现, 就说明一个区域被划分出来了1,4。直到将整幅图像分割成满足条件的不同子区域.这些 初始的小区域可能是小的邻域甚至是单个象素。对这些小的区域,通过计算它们反映这个 四川大学本科毕业论文 基于图像分割的简单图像抠取算法的研究与实现 5 区域内像素一致性的特征,如平均灰度值,纹理,等信息,来进行一些小区域的合并。从而 最终完成整个分割过程。区域合并的第一步就是根据前面的特征给每个区域赋一组参数。 这些参数能够反映区域属于哪个物体1,5。接下来根据相邻区域特征的差异为所有的边界 赋一个强度值,这样就能够通过判断这个强度值的大小来考查是否要对两个相邻区域的 共同边界进行消除操作。如果这个值很大,则表示这个边界的强度很大,即这两个相邻 的区域拥有着很大的差异,则不需要进行合并,它们的边界也就不能消除,反之,若这 个值较小,则认为相邻区域拥有很高的相似度,可以起先边界消除完成合并。在这个过 程完成后需要对所有的区域根据它当前的所有像素重新计算出一个特征值,以便完成下 一次的边界消除,区域合并过程。可以看出区域合并是一个反复迭代的过程,直到没有 区域再进行合并时,才停止。这个过程就是一个不断生长的过程,直到生长出目标,生 长过程才会结束1,6。 3) 基于边缘的分割 图像的边缘是图像最基本的特征之一,所谓边缘是指其周围像素灰度有阶跃变化或屋 顶变化的那些像素的集合.边缘广泛存在于物体与背景之间,物体与物体之间,基元与基元 之间,因此,它是图像分割依赖的重要特征.图像分割在某种程度上可以说是为一找到各个 区域的边缘的操作。而由以上对于边缘的定义知,边缘是图像的局部特征,这样通过对 局部特征的分析就可以确定某个像素是否是边缘。基于边缘的分割技术主要有基于点的 检测,基于线的检测经及基于边缘检测等几种方法1,7。 基于点的检测主要是先检测出离散的点,然后再将点连接成封闭的边界,其处理过程 就是用一个对待检测区域进行离散点的检测,如下示: W 1 W2W 3 W 4 W5 W 6 W 7 W8 W 9 R = W1Z2+ W1Z2+.+ W9Z9 表表 2-1 其中 Zk是与模板系数 Wk相联系的灰度级像素,R 代表模板中心像素的值。 而基于线的检测有两种方式,一种是利用线检测模板进行线检测,另外是利用哈夫变 换进行直线检测。 而基于边缘检测的分割方法则主要是利用各种算子得到图像中的边缘,进而根据边缘 信息得到分割后的区域。 边缘检测的基本问题是噪声对图像检测精度的影响。由于图像边缘和噪声均为频域中 的高频分量,简单的微分运算会增加图像中的噪声。因此,在微分运算之前应采用适当 的平滑滤波以减少高频分量中噪声的影响。Cannny 应用严格的数学方法对此问题进行了 分析,提出了 4 个指数函数线性组合形成的最佳边缘检测算子,其实质是用一个准高斯 四川大学本科毕业论文 基于图像分割的简单图像抠取算法的研究与实现 6 函数做平滑运算,然后以带方向的一阶微分定位导数最大值,它可用高斯函数的梯度来 近似,属于具有平滑功能的一阶微分算子1,8。Canny 给出了评价边缘检测性能优劣的三 个指标: 好的信噪比,即将边缘点判为非边缘点,非边缘点判为边缘点的概率应该比较低。 好的定位性能,即检测出的边缘点,应尽可能在实际边缘点的中心。 对单一边缘仅有唯一响应,即单个边缘产生多个响应的效率应该比较低,并且虚 假边缘的响应应该得到最大的抑制。 并且,优秀的边缘检测器可以通过以下方式得到: 使图像信噪比 SNR 最大化 使标记的边缘点与真实边缘中央的距离的均方根的估计值的倒数最大化 为了同时达到检测性能指标和定位标准的最大化,Canny 认为 SNR 与边缘点位移的估 计值一的标准方差的倒数乘积应达到最大1,9。 3.1.2 新颖的图像分割方法 目前应用于图像分割的新方法非常的多,它们的应用范围也各有不同,处理效果即理 论的成熟度也表现出了一些差异,下面就基于分形的图像分割技术和基于神经网络的图 像分割技术做一个简单的介绍。 1) 基于分形的图像分割技术 基于分形的图像分割技术的核心思想是利用图像的分形维数进行分割。而分形维数在 一定程度上对物体表面的粗糙度有着一定程度的反映,而自然物体与人造物体在分形维 数上有着很大的差异,这样就可以利用这个特征从自然背景中提取出人造物体。B. B. Mandelbrot 指出,Hausdorff Besicovitch 维数严格大于拓扑维数的集合称为分形,而 目前较为流行的描述如下2,1: 一般的,如果 F 是具有以下性质的集合,则称它是一个分形。 (1) F 具有精细的结构,即有任意小比例的细节。 (2) F 是如此不规则,以至于它的整体与局部都不能用传统的几何语言来描述。 (3) F 通常具有某种自相似形式,可能是近似的或统计的。 (4) 一般地,F 的“分形维数”(以某种方式定义的)大于它的拓扑维数。 (5)在大多数令人感兴趣的情形下,F 可以以某种非常简单的方法产生,可能由迭代 产生。 在上面的定义中,自相似性是分形具有的一个最重要的特征2,2。所谓自相似,是指 系统的总体和部分之间,这部分和那部分之间具有的相似性。分形作为一个数学集, 它的内部应具有精细结构,也就是在所有比例尺度上其组成部分应包含整体,而且是 四川大学本科毕业论文 基于图像分割的简单图像抠取算法的研究与实现 7 自相似的,它以其独特的手段来解决整体与部分的关系问题。自相似性具有标度不变 性,其严密的量化方法至今未形成,仅能借助计算机模拟2,3。 2) 基于神经网络的图像分割技术 神经网络是目前较为新颖的研究领域,已经被使用在了很多问题的解决中。神经网络 技术在图像分割中的应用目前也有了极大的发展。基于神经网络的分割是用一个或一系 列人工神经网络对图像中的小区域进行处理的分割技术。经过这样的决策机制处理后, 图像中各个区域就由神经网络确认的类别进行了标志。这种类型的神经网络的一个经典 用例就是基于 Kohonen 图的网络。脉冲耦合神经网络(PCNNs)是通过模拟猫的视皮层神 经元模型和为了获得高性能图像处理仿生而开发的。1989 年,Eckhorn 介绍了神经网络 模型来模拟猫的视皮层机制。Eckhorn 模型为研究小型哺乳动物的视觉皮层提供了一个简 单而有效的工具,并很快在图像处理方面获得了具有重大应用潜力的认可。1994 年, Eckhorn 模型被约翰逊应用于一种图像处理算法中,该算法称为脉冲耦合神经网络。在过 去的十年中,PCNNs 已被用于图像处理的各种应用,包括:图像分割,特征生成,面部提 取,运动检测,区域生长,减少噪声等。PCNN 的是一个二维神经网络。网络中的每个神 经元对应一个像素的图像输入,接收其对应的颜色信息(如强度)作为外部刺激。 每个 神经元又与邻近神经元的连接,接收从他们而来的本地刺激。 外部和地方刺激在内部激 活系统相结合直到它超过一个动态的门限值,然后就倒输出一个脉冲。通过迭代计算, PCNN 的神经元产生的脉冲输出的时间序列。 输出的脉冲时间序列包含图像信息的输入, 可为各种不同的图像处理应用,如图像分割和特征生成,利用。 与传统的图像处理手段, PCNNs 有几个显着优点,包括对噪声的鲁棒性,几何变化的输入模式,输入模式的衔接等 小强度的变化能力等3。 四川大学本科毕业论文 基于图像分割的简单图像抠取算法的研究与实现 8 3 算法实现的工具及技术简介算法实现的工具及技术简介 在 GrabCut 算法的实现过程中,整个算法的实现都是建立在 MFC 框架之上的。MFC 框架很好的完成了算法实现系统的界面显示以及用户交互等工作。另外为了很好的完成 GrabCut 算法的图像输入及显示工作,在其实现中分别用到了 GDI+中 CImage 类和 OpenGL 中的绘制函数来完成。 3.1 MFC 概述概述4 3.1.1 MFC 编程框架 MFC 是 Microsoft Foundation Class 的简写。MFC 中所包含的各种类组合起来构成 了一个应用程序框架,它的目的就是让程序员在此基础上来建立 Windows 下的应用程序, 这是一种相对 SDK 来说更为简单的方法。因为总体上,MFC 框架定义了应用程序的轮廓, 并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用 程序特有的东西填入这个轮廓。Microsoft Visual C+提供了相应的工具来完成这个工 作:AppWizard 可以用来生成初步的框架文件(代码和资源等) ;资源编辑器用于帮助直 观地设计用户接口;ClassWizard 用来协助添加代码到框架文件;最后,编译,则通过类 库实现了应用程序特定的逻辑4,1。 1)封装 MFC 框架的构成主要是由 MFC 类库,而 MFC 类库主要是一些 C+类库。这样这些 类库就可以对 Win32 应用程序编程接口,应用程序概念,OLE 特性,ODBC 或 DAO 数 据库访问等功能进行封装。具体的分述如下4,2: 对 Win32 应用程序编程接口的封装 用一个 C+ Object 来包装一个 Windows Object。例如:class CWnd 是一个 C+ window object,它把 Windows window(HWND)和 Windows window 有关的 API 函数封 装在 C+ window object 的成员函数内,后者的成员变量 m_hWnd 就是前者的窗口句 柄。 对应用程序概念的封装 在使用 SDK 编写 Windows 应用程序时,必须首先定义窗口过程,然后对窗口进 行登记操作,最后才会完成对窗口的创建过程,等等。而对于这一套过程的实现每一 四川大学本科毕业论文 基于图像分割的简单图像抠取算法的研究与实现 9 次使用的代码都极为类似,这就造成了过多的重复操作。于是 MFC 把许多类似的处 理用一些类封装起来,替程序员完成这些工作,以提高编码的效率。另外,MFC 还对 文档-视图模式进行了封装支持,而文档就表示了用户操作的数据对象,而视图则被视 为完成对数据对象操作的接口,用户通过对视图的操作就可以完成对数据对象的查看 及处理。 对 COM/OLE 特性的封装 OLE 即 Object Linking and Embedding,它是建立的 com 模型的基础上的,而应 用程序若要实现对 OLE 的支持就必须实现一套接口,以完成 OLE 的初始化装载。而这 一套接口的实现又极为繁琐,因此,MFC 的 OLE 类对 OLE API 大量的复杂工作进行 了封装,这些类提供了实现 OLE 的更高级接口4,3。 对 ODBC 功能的封装 以少量的能提供与 ODBC 之间更高级接口的 C+类,封装了 ODBC API 的大量的 复杂的工作,提供了一种数据库编程模式。 2)继承 MFC 拥有一个庞大的类库,这些类库对 MFC 所能够提供的功能进行了很好的封装。 而类库中的各个类并不是独立的,它们大多从一些基础类中派生而来,而这些基础类对 MFC 中众多类的共同实现进行了很好的实现。首先,MFC 抽象出众多类的共同特性,设 计出一些基类作为实现其他类的基础。这些类大多都是从 CObject 和 CCmdTarget 派生而 来.CObject 类对一些重要的特性提供很好的实现,这些特性包括动态类信息、动态创建、 对象序列化、对程序调试的支持,而 CCmdTarget 通过封装一些属性和方法,提供了消息处 理的架构。从这个两个类派生出的子类都具有这两个类的特性. 3)虚拟函数和动态约束 MFC 是在 C+的基础上构建的,它对 C+中的虚函数与动态约束都提供了很好的支持, 并且 MFC 还建立了消息映射机制来对过多的使用虚函数所带来的如程序臃肿,内存消耗过 大,效率低下等问题进行优化.通过对虚拟函数和消息映射的支持,MFC 类就为提供了丰富 的编程接口。用户继承基类的同时,把自己实现的虚拟函数和消息处理函数嵌入 MFC 的 编程框架。这样 MFC 框架就能够完成用户所期望的处理效果. 4)MFC 的宏观框架体系 MFC 对一切用于更好的使用户进行应用程序开发的功能,动态约束,及它们间的一些关 系与相互作用都进行了很好的封装。这使得用户的整个开发过程大部分的工作都用于对 这些开发模板的使用以及调配。而在不同的应用程序的开发过程,仅仅是对不同模板的 使用而已。然而,为了实现如上模板或模式的支持,MFC 内部将会有着非常复杂的实现 过程。例如,如果要使应用程序能够建立在消息映射的机制上,MFC 就必须对消息映射 机制的过程做很好的实现,即对整个消息获取,消息处理等一系列的操作都必须预定义 四川大学本科毕业论文 基于图像分割的简单图像抠取算法的研究与实现 10 其操作的流程及处理方式。又如,为了实现对 DLL 编程的支持和多线程编程的支持, MFC 的内部同样必须采用一些内部约定的方法对其进行如初始化,信息管理,句柄获取 等一系列必须的操作进行处理。虽然对于大多数的用户来说,在不明白 MFC 的一些内部 实现的情况下,也能做出一些良好的应用。但是如果能够对这些不透明的实现有着很好 的理解,那么就能够在开发中更加的随心所欲,甚至说对其实现进行优化。总之,MFC 封装了 Win32 API,OLE API,ODBC API 等底层函数的功能,并提供更高一层的接口, 简化了 Windows 编程。同时,MFC 支持对底层 API 的直接调用4,4。 MFC 提供了一个 Windows 应用程序开发模式,对程序的控制主要是由 MFC 框架完 成的,而且 MFC 也完成了大部分的功能,预定义或实现了许多事件和消息处理,等等。 框架或者由其本身处理事件,不依赖程序员的代码;或者调用程序员的代码来处理应用 程序特定的事件4,5。 MFC 是 C+类库,程序员就是通过使用、继承和扩展适当的类来实现特定的目的。 例如,继承时,应用程序特定的事件由程序员的派生类来处理,不感兴趣的由基类处理。 实现这种功能的基础是 C+对继承的支持,对虚拟函数的支持,以及 MFC 实现的消息映 射机制。 3.1.2 MDI 应用程序构成 上面对 MFC 的编程框架做了介绍,现在就 MDI 应用程序做一下简单的分析.使用 VC 的 AppWizard 可以在很方便的情况下生成一个 MDI 应用程序,这

温馨提示

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

最新文档

评论

0/150

提交评论