基于安卓平台的图像引导滤波算法的实现.doc
《基于安卓平台的图像引导滤波算法的实现.doc》由会员分享,可在线阅读,更多相关《基于安卓平台的图像引导滤波算法的实现.doc(28页珍藏版)》请在咨信网上搜索。
1、 中央广播电视大学开放教育(本/专)科毕业论文(设计)题目: 基于安卓平台的图像引导滤波算法的实现 姓 名: 学 号: 年 级: 专 业: 指导教师: 吉林广播电视大学桦甸市分校二0一五年二月1目 录第一章 研究背景及意义3第二章 Android系统相关知识介绍42.1 Android系统的诞生与发展42.2 Android系统框架42.3 Android优缺点62.4 Android编译环境搭建7第三章 算法解析93.1 算法理论介绍93.2 算法java实现10第四章 仿真实验及分析124.1程序演示及分析124.2 重难点及解决方案154.3关键代码17第五章 总结与收获20参考文献22
2、附录23 基于安卓平台的图像引导滤波算法的实现第一章 研究背景及意义在计算机视觉和计算机图形学中大多数程序都牵涉到通过图像滤波来降低噪音或者提取有用的图像结构来对图片进行相应优化的思想。一些简单的线性平滑滤波算法如高斯滤波器,拉普拉斯算子过滤器,索贝尔过滤器广泛的应用于图像模糊,图像锐化,边缘检测和特征提取等方面。但是线性平滑滤波过滤器的滤波核是固定不变,独立于任何图像内容。但在许多情况下,我们可能希望在过滤过程中将给定的引导图像额外的信息体现出来。第一种解决方案就是通过考虑引导图像优化算法所执行的二次方程,这种解决方案是通过处理以引导图像信息编码的大型稀疏矩阵,这些非齐次的矩阵隐含了变动的滤
3、波核。这种处理方法广泛的应用在许多应用比如;着色,抠图,多次度分解和图片消雾中。另外的一种方法通过引导图像生成滤波核。比如双边滤波器可以实现平滑滤波的同时还能具有良好的边缘保持性能,但是会产生一些额外的梯度逆转伪影。而由微软亚洲研究院何恺明博士提出的一种图像引导滤波算法 引自kaiming he,Jian Sun ,xiaoou,Tangguide image filterpage1- 2。这种算法本质上是引导图像的线性转换。该算法能够像双边滤波算法一样较好的实现平滑滤波还能具有良好的边缘保持性能,而且不产生梯度逆转伪影。而且他也和拉普拉斯矩阵相关,也是在平滑滤波方法中可被接受的一种理念,图像
4、引导滤波算法计算与滤波核的大小无关。此外,引导滤波器对于灰阶图和彩色图都有精确地算法,在大量的应用中实验证明图像引导滤波算法在效果和效率上有很不错的表现。随着android手机的普及,各式各样的应用层出不穷,但是在手机图像方面人们往往希望在手机屏幕中显示更为绚丽清晰的图像。但是目前很多高像素手机拍摄出来的照片因为相机硬件问题,光照,抖动等各种因素照成不如人意的图片。如果能够在手机上直接对刚生成的图片进行相应的处理和优化那无疑是对手机拍照功能的一大补充。针对这一情况,本次课题的目的是在Android手机平台上使用图像引导滤波算法实现对图像的优化及处理。第二章 Android系统相关知识介绍2.1
5、 Android系统的诞生与发展 2003年10月,有“Android之父”之称的Andy Rubin在美国加利福尼亚州帕洛阿尔托创建了Android科技公司.2005年8月17日,Google收购了Android科技公司,Android科技公司成为Google旗下的一部分。之后,鲁宾着手负责开发基于Linux内核的移动操作系统即后来的Android操作系统。2007年11月5日,在Google的领导下,手持设备联盟(Open Handset Alliance)成立,第一批成员包括Broadcom公司、HTC、Intel、LG、Marvell等公司。开放手持设备联盟的创建目的是为了创建一个更加
6、开放自由的移动电话环境。也在同一日,手持设备联盟联盟对外展示了他们的第一个产品:一部搭载了以Linux 2.6为内核基础的Android操作系统的智能手机。后来新一批成员陆续加入联盟,同时,一个负责持续发展Android操作系统的开源代码项目成立了AOSP(Android Open Source Project) 。除了开放手持设备联盟之外,Android还拥有全球各地开发者组成的开源社区来专门负责开发Android应用程序和第三方Android操作系统来延长和扩展Android的功能和性能。 http:/zh.wikipedia.org,24.5.20132.2 Android系统框架如图2
7、-1所示Android系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层。图2-1Android系统的应用层主要是开发人员使用JAVA语言进行开发的一些具有特定功能的应用,如照相机,浏览器,短信发送程序以及一些小游戏等应用。Android系统的应用框架层是开发人员从事Android开发的基础,很多核心应用程序也是通过这一层来实现其核心功能的,该层简化了组件的重用,开发人员可以直接使用应用框架层所提供的组件来进行应用程序开发,也可以通过重写而实现个性化的拓展。Android系统的系统运行库层可以分成两部分,分别是系统库和Android运行时库。其中
8、系统库中主要的库有 :Media Framework:多媒体库,基于PacketVideo OpenCore;支持多种常用的音频、视频格式录制和回放,编码格式包括MPEG4、MP3、H.264、AAC、ARM。SQLite: 小型的关系型数据库引擎。OpenGL|ES:根据OpenGL ES 1.0API标准实现的3D绘图函数库。 FreeType:提供点阵字与向量字的描绘与显示。 WebKit:一套网页浏览器的软件引擎。SGL:底层的2D图形渲染引擎。 Libc:从BSD继承来的标准C系统函数库,专门为基于embedded linux的设备定制。 Android应用程序时库采用Java语言编
9、写,程序在Android运行时中执行,其运行时分为核心库和Dalvik虚拟机两部分:核心库:提供了Java语言API中的大多数功能,同时也包含了Android的一些核心API,如android.os、android.media等等。Dalvik虚拟机:Dalvik虚拟机是一种基于寄存器的Java虚拟机,而不是传统的基于栈的虚拟机,并进行了内存资源使用的优化以及支持多个虚拟机的特点。Android系统的内核层是基于Linux2.6内核,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核。2.3 Android优缺点优点一:开放性Google公司将Android
10、系统的源代码对外开放意味着允许任何移动终端厂商加入到Android联盟中来。因为Android的开源,专业人士可以利用开放的源代码来进行二次开发,打造出个性化的Android。例如中国的MIUI就是基于Android2.3原生系统深度开发的Android系统,其与原生系统相比有了较大的改动。而且开放性可以缩短开发周期,降低开发成本。如此一来跟有利于Android的发展 李芙蓉当前智能手机操作系统及其比较分析J信息技术,2008优点二:用户自由度更高Android操作系统给予了用户跟高的自由度,熟悉Android的都清楚:用户可以根据自己的喜好来设置手机界面,Android的应用市场甚至上还有各
11、式各样的启动器来供用户自己选择,让自己的手机与众不同。例如,用户要是喜欢HTC的操作界面,便马上可以在应用市场上找到,甚至还能模仿IOS的界面。相比于IOS操作系统,Iphone手机只有一成不变的手机界面,不能对其进行更改。优点三:大量Android应用程序正是因为Android平台的开放性,吸引了大量的开发人员进行应用程序开发。从而使android应用程序数量快速上升。截止去年10月30日,Android应用首次超过ios应用达到71.3万.缺点一:安全问题由于Android系统的开源以及快速的发展以及审核机制的不完善导致Android市场上出现了一些恶意软件。2009年11月10日Andr
12、oid平台出现第一个恶意间谍软件:MobileSpy。2010年8月12日,出现了第一个木马病毒:Trojan-SMS.AndroidOS.FakePlayer.a 杨丰盛 Android应用开发揭秘M北京:机械工业出版社,2010。在这些恶意软件的影响之下,用户的隐私不能得到充分的保障,在不经意间就可能泄露自己的隐私。缺点二:用户体验不一因为Android系统的流畅运行需要硬件支持。而手机厂商对于Android的定制多种多样,导致了一些高配置手机上Android的运行流畅度良好,而低配置手机运行缓慢。缺点三:程序平均质量不高随着Android系统的开源,越来越多的手机厂商在智能手机上使用An
13、droid手机,Android手机应用开发者也越来越多,Android应用程序的数量也在快速上升。但是Android程序开发者的开发水平难免良莠不齐。在高端应用上,相较于苹果应用,Android应用程序因为其自身多为免费程序,许多应用功能强大Android应用程序的为了商业用途难免在应用程序中夹杂许多推送广告,引起人们的反感。2.4 Android编译环境搭建2.4.1 JDK安装与配置 在网页 查看JDK版本信息,若显示版本信息则说明安装成功,若显示错误,请先确认环境变量是否设置。以Windows7系统为例,假设JDK安装路径在C:Program FilesJavajdk1.6.0_31,进
14、入计算机高级系统设置环境变量系统变量中90点击新建,在变量名中输入classpath,变量值为C:ProgramFilesJavajdk1.6.0_31libdt.jar;C:ProgramFilesJavajdk1.6.0_31libtools.jar;2.点击新建,在变量名中输入JAVA_HOME,变量值为C:Program FilesJavajdk1.6.0_313.找到path选项,在变量值后面添加C:Program FilesJavajdk1.6.0_31bin记得用“;”和前面隔开。配置完成后再输入java -version进行测试。2.4.2 eclipse安装与配置进入http
15、:/www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/juno/SR2/eclipse-java-juno-SR2-win32.zip网页中并下载eclipse进行解压,解压后可直接使用,进入eclipse主界面在主界面上方点击help-Install New Software,点击add在name中随意输入名字,location中输入http:/dl- tools下载并安装相应组件。2.4.3 SDK在网上搜索并下载SDK,将其解压后的文件所在目录配置到菜单window-preferen
16、ces-android-SDK location.,因为SDK可能存在过时,要进行文件更新才能正常使用。点击eclipse界面的android SDK Manager,为了方便选择,将显示的所有安装文件选中并开始下载安装。2.4.4 创建AVD因为android系统是建立在Linux操作系统基础上。所以编写好的android程序不能直接在windows系统下运行。因此我们需要搭建一个模拟的平台来测试安卓程序的运行。在eclipse主界面选中android virtual device manager,在显示的界面中点击new设置主要参数。主要包括AVD的name,device,target(虚
17、拟机的版本)。其他参数当有需要时可以自行设定。至此关于android开发的平台搭建完毕。第三章 算法解析3.1 算法理论介绍在图像引导滤波算法中,首先明确一个概念,输出图像Q是输入图像P和引导图像I进行线性变换的结果。输入图像P和引导图像I都是已知量,而且两者可以完全相同。输入图像P的像素点i的值在经过处理之后生成一个加权平均数并成为输出图像Q的像素点i; 公式 1在本函数中,i和j都代表像素的索引,滤波核Wij是输入图像I的函数并且与P无关。但是滤波器是与P线性相关的。我们假设q是I在以像素K为中心的小窗口WK上进行线性变换的结果。则有以下函数 公式 2其中(ak,bk)是在窗口Wk中恒定不
18、变的线性参数。我们使用一个半径为R的正方形窗口。这个线性模型确保仅当引导图像I有边缘时q才有边缘。因为:q = aI。这个模型已经在多个应用中证明是可行的比如,抠图,图像超分辨率,和清除迷雾。为了确定这些线性参数,我们寻找一种解决方案来最小化输出图像q和输入图像p之间的差别。尤其的,我们列出下面的函数 公式 3在本函数中,是一个不变的参数用来防止ak的值过大,本函数通过计算得到答案 公式 4 公式 5在上述函数中,是引导图像I在窗口WK中的平均值,是引导图像I在窗口WK的方差,是在窗口WK里面的像素数目,是p在窗口WK的平均值。下面,我们将线性模型应用于整个图片中的局部窗口,然而像素I可能包含
19、在许多WK中,所以在函数1中的值在不同窗口计算出来的值不相同。一个简单的方法就是计算出所有qi可能值的平均数。所以当计算出图片中每个模块的(ak.bk),我们计算输出滤波器 公式 6 公式 7 公式 8至此输出图像q的像素点i的值生成。循环重复计算每个像素点,从像素点扩散到全图,就生成了输出图像q引自kaiming he,Jian Sun ,xiaoou,Tang guide image filterpage 3-4。3.2 算法java实现众所周知图像格式多种多样,在本程序中,我们仅为了研究算法,不对图片格式进行细化分析。暂时对以bmp为代表的彩色24位图片进行处理。此类图片的存储方式可看为
20、一个三维数组,其中变量i和j代表图片的像素的索引,当i,j确定时即可确定一个像素点k,k的值包括透明度alpha,红色值R,绿色值G蓝色值B,其中alpha,R,G,B都为0到255的整数,为了方便算法的实现,我们单独讲所有的R值,G值,B值取出来形成三个新的灰阶二维数组分别进行处理。引自wilhelm Burger Mark J.Burge数字图像处理 java语言算法描述清华大学出版社首先打开程序,点击按钮并浏览选择要优化的图片I。程序中为了方便,将输入图像I与引导图像P设为同一张图的,既将输入图像I的值赋给引导图像P。然后设定小窗口半径r为16(此处可发散开来让用户自己选择喜欢的半径,但
21、不宜过大,)以及定义一个浮点型小数并赋值,该小数作用等同于上文公式中的。首先将图片I,P中的数据提取成4个二维数组分别表示alpha值的数组,R值的数组,G值的数组,B值的数组,注意因为alpha值不参与运算,因此提取后不作处理。下面以R值的二维数组运算过程来表现算法。首先定义方法boxfilter该方法输入参数为一个浮点型二维数组a和一个整型r,返回值是一个浮点型的二维数组。方法实现的功能是计算一个二维数组a在半径为r的小窗口的所有值之和sum,随着小窗口的移动,sum的值也不断发生变化,生成一个新的二维数组 引自 ,24.5.2013。具体实现后文将会提到。float N =new Box
22、filter().boxfilter(p, r);/此时,数组N即函数4中|W|表示该窗口所有像素个数之和float mean_I = new Operation().Division(new Boxfilter().boxfilter(a, r), N);/获得二维数组I在以r为半径大小的小窗口中的像素值平均数float mean_p = new Operation().Division(new Boxfilter().boxfilter(b, r), N);/获得二维数组I在以r为半径大小的小窗口中的像素值平均数floatmean_Ip=newOperation().Division(ne
- 配套讲稿:
如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。