基于非真实感绘制的漫画效果实现毕业论文(编辑修改稿)内容摘要:

测 增强边缘 输出图像 图 实现图像漫画效果流程图 9 第三章 双边滤波 工具介绍 简介 论文围绕中心 Matlab 软件,通 过其实现目的。 MATLAB 是一种专业的计算机程序, 常被 用于工程科学的矩 阵数学运算。 但在之后的几年,它逐渐发展为一种极其方便灵巧的计算体系,用于 解决各种重要的技术问题。 在 70 年代中期 ,Cleve Moler 博士和他同事在美国国家科学基金的资助下开发了调用 EISPACK 和 LINPACK 的 FORTRAN 子程序库。 EISPACK 是特征值求解 FOETRAN 的程序库, LINPACK 是解线性方程的程序库。 当时这两个程序库代表矩阵运算的最高水平。 直到 70 年代后期 ,美国 New Mexico 大 学计算机系系主任的 Cleve Moler,,在给学生讲授线性代数课程时,想教学生使用 EISPACK 和 LINPACK 程序库,但他发现学生用 FORTRAN 编写接口程序很费时间,于是他开始自己动手,为学生编写 EISPACK 和 LINPACK 的接口程序。 最终 Cleve Moler 给这个接口程序取名为 MATLAB,次名字为矩阵(matrix)和实验室 (labotatory)两个英文单词的前三个字母的组合。 在以后的数年发展里,MATLAB 在众多大学里作为教学辅助软件使用, MATLAB 到今天已经历 了近 30 年的发展过程。 MATLAB 分为总包和其他的 工具箱, 伴 随着版本的不断升级,它具有越来越 全面的数值计算能力,越卓越的数据可视化能力和良好的符号计算功能,逐渐 发展成为 了 各种学科、多种工作平台下 支持的 功能强大的大型软件,获得广大科技工作者的普遍认可。 一方面, MATLAB 可以方便实现数值分析、优化分析、数据处 理、自动控制、信号处理等领域的数学计算,另一方面,也可以快捷实现计算可 视化、图形绘制、场景创建和渲染、图像处理、虚拟现实和地图制作等分析处理工作。 优点 MATLAB 语言 相对于传统的科技编程语言有诸多的优点。 主要包括: 1. 易用性 MATLAB 是种解释型语言,就像各种版本的 BASIC。 和 BASIC 一样,它简单易用程序可用作便笺簿求打在命令行处表达式的值 执行预先写好的大型程序。 在 MATLAB 集成开发环境下,程序可以方便的编写,修改和调试。 这是因为这种语言极易使用,对于教育应用和快速建立新程序的原型,它是一个理想的工具。 许多的编程工具使得 MATLAB 十分简单易用。 这些工具包括:一个集成的编译 /调试器,在线文件手册,工作台和扩展范例。 10 2. 平台独立性 MATLAB 支持许多的操作系统,提供了大量的平台独立的措施。 在本书编 写的时侯, windows 98/20xx/NT 和许多版本的 UNIX 系统都支持它。 在一个平 台上编写的程序,在其它平台上一样可以正常运行,在一个平台上编写的数据文件在其它平台上一样可以编译。 因此用户可以根据需要把 MATLAB 编写的程序 移植到新平台。 3. 预定义函数 MATLAB 带有一个极大的预定义函数库,它提供了许多已测试和打包过的 基本工程问题的函数。 例如,假设你正在编写一个程序,这个程序要求你必须计 算与输入有关的统计量。 在许多的语言中,你需要写出你所编数组的下标和执行 计算所需要的函数,这些函数包括其数学意义,中值,标准误差等。 像这样成百 上千的函数已经在 MATLAB 中编写好,所以让编程变得更加简单。 除了植入 MATLAB 基本语言中的大量函数,还有许多专用工具箱,以帮助用户解决在具体领域的复杂问题。 例如,用户可以购买标准的工具箱以解决在信号处理,控制系统,通信,图象处理,神经网络和其他许多领域的问题。 4. 机制独立的画图 与其他语言不同, MATLAB 有许多的画图和图象处理命令。 MATLAB 运 当 行时,这 些绘图和图片将会出现在这台电脑的图象输出设备中。 此功能使得 MATLAB 成为一个形象化技术数据的卓越工具。 5. 用户图形界面 MATLAB 允许程序员为他们的程序建立一个交互式的用户图形界面。 利用 MATLAB 的这种功能,程序员可以设计出相对于无经验的用户可以操作的复杂 的数据分析程序。 6. MATLAB 编译器 MATLAB 的灵活性和平台独立性是通过将 MATLAB 代码编译成设备独立 的 P 代码, 然后在运行时解释 P 代码来实现的。 Matlab 程序执行 matlab 语言,并提供了 一个极其庞大的预定义函数库,高效的数值计算及符号计算功能,能使我们从繁重复杂 的数学运算分析中解脱出来;完备的图形处理功能,实现了 计算 编程 和结果 的可视化;功能丰富的应用工具箱,提供了大量方便实用的处理工具; 简单 的界面及接近数学表达式的自然化语言,便于 我们 学习和掌握。 Matlab 的这些特点使得它十分适用于我们实现这次目的。 滤波 器 简介 及选择 图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。 下 面简介几个常见滤波器。 高斯滤波是一种线性平滑滤波,适用于滤除高斯白噪声,已广泛应用于图像处理的预处理阶段。 对图像进行高斯滤波就是对图像中的每个点的像素值计算,计算的准则是,由该点本身灰度值以及其邻域内的其他像素灰度值加权平均所得,而加权平均的权系数由二维离散高斯函数采样并归一化后所得 [14]。 11 均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。 线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点( x, y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该 均值赋予当前像素点( x, y),作为处理后图像在该点上的灰度值 g( x, y),即 g( x, y) =1/m ∑ f( x, y), m 为该模板中包含当前像素在内的像素总个数。 这样的方法可以平滑图像,速度快,算法简单。 但是无法去掉噪声,这能微弱的减弱它 [14]。 中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。 在图像处理中,中值滤波常用来保护边缘信息 ,是经典的平滑噪声的方法,该方法法对消除椒盐噪音非常有效,在光学测量条纹图象的相位分析处理方法中有特殊作用,但在条纹中心分析 方法中作用不大 [14]。 双边滤波器(英语: Bilateral Filter)是使图像平滑化的非线性滤波器,与传统的图像平滑化算法不同 ,双边滤波器除了使用像素之间几何上的靠近程度之外,还多考虑了像素之间的光度 、 色彩 的 差异, 使双边滤波器能够有效的将图像上的噪声去除,同时保存图像上的边缘讯息。 b. 高斯滤波 c. 均值滤波 d. 中 值滤波结果 e. 双边滤波结果 图 各滤波器对比 根据以上几幅图,可以看出高斯滤波和均值滤波模糊了边界,而中值滤波和双边滤波则能够较好的保存图像的边界信息。 为此,选择双边滤波器进行实验。 双边滤波原理 在文献 Bilateral Filtering for Gray and Color Images[15]中,详尽的解释了双边滤波。 双 12 边滤波方法 (Bilateral filtering)是基于 Gsuss 滤波方法提出的,主要是针对 Gauss 滤波中将Gauss 权系数直接与图像信息 作卷积运算进行图像滤波的原理,将滤波权系数优化成Gauss 函数和图像亮度信息的乘积,优化后的权系数再与图像信息作卷积运算,这样就能在滤波的同时考虑到图像信息中的图像边缘信息,使图像在正常 Gauss 滤波后很模糊的边缘信息得以保持清晰,并且图像边缘更加平滑。 此方法对于彩色和灰度图像的滤波均适用,具有很强的适用性。 双边滤波与高斯滤波器相比,对于图像的边缘信息能过更好的保存。 其原理为一个与空间距离相关的高斯函数与一个灰度距离相关的高斯函数相乘。 零均值加性高斯噪声图像模型: (1) 式中 , f 表示无噪声图像 , n 是服从零均值高斯分布的噪声 , g 是噪声图像 ; g ( x, y )表示图像 g 在位置 (x,y)上的像素值。 滤除噪声图像 g 中的噪声 n, 重建无噪声图像 f。 双边滤波器采用局部加权平均的方法获取复原图像的像素值 : (2) 公式中, Ss,y 表示中心点( x,y)的( 2N+1) *( 2N+1)大小的领域。 实 际上,公式( 2)右边就是中心像素点邻域内像素亮度值的加权平均。 对该邻域内的每一个像素点 g(i,j)由两部分因子的成绩组成 , 分别是下面的空间距离和灰度距离。 空间距离: 是当前 目标 点与中心点的欧式距离。 空间域 的 高斯函数其数学形式为: (3) 其中( xi,yi)为当前点 的 位置,( xc,yc)为中心点的位置, sigma 是 空间域标准差。 灰度距离: 是当前 目标点灰度与中心点灰度想 差的绝对值。 值域高斯函数其数学形式为: (4) 其中 gray(xi,yi)为当前点灰度值, gray(xc,yc)为中心点灰度值, sigma 为值域标准差。 双边滤波中加入了对 点灰度信息的权重: 在邻域内,灰度值越 是 接近中心点灰度值的点的权重更大, 而 灰度值相差大的点权 重越小。 此权重大小,则由值域高斯函数 来 确定。 两者权重系数相乘, 可以得到最终的卷积模板。 因为双边滤波需要每个中心点邻域的灰度信息以确定其系数,所以它的 速度与比一般的滤波慢 很多,并且 计算量增长速度为核大小的平方。 空间域 sigma 选取 可以参考 OpenCV 参考文档 所写 :“对应高斯参数的 Gaussian sigma (标准差 ), 如果为零,则标准差由下面的核尺寸计算: sigma = (n/2 1)* 13 + , 其中 n=param1 对应水平核 , n=param2 对应垂直核”。 而对值域 sigma 来说 , Sigma 越大,边缘越模糊,极限情况为 simga 无穷大,值域系数近似相等(忽略常数时,将近为 exp( 0) = 1),与高斯模板(空间域模板)相乘后可认为等效于高斯滤波。 sigma 越小,边缘越清晰,极限情况为 simga 无限接近 0,值域系数近似相等(接近 exp( ∞) = 0),与高斯模板(空间域模板)相乘后,可近似为系数皆相等,等效于源图像。 实现双边滤波 选择使用的双边滤波器 [16], 由于要确保图像细节的完整, sigma 的值不可以过大导致模糊失真,所以选择 sigma 小值,通过一次滤波后观察是否需要继续进行下一次。 %读入图像,设定名字为 test I=imread(39。 39。 )。 %改变图像精度才能进行后续操作 I=im2double(I)。 %设定 w和 sigma,为双边滤波做准备 w = z。 sigma = [x y]。 %进行多次双边滤波,双边滤波函数见 [4] I1=bfilter2(I,w,sigma)。 I2=bfilter2(I1,w,sigma)。 I3=bfilter2(I2,w,sigma)。 I4=bfilter2(I3,w,sigma)。 I4=bfilter2(I4,w,sigma)。 I4=bfilter2(I4,w,sigma)。 I4=bfilter2(I4,w,sigma)。 I4=bfilter2(I4,w,sigma)。 小结 本章 实现了双边滤波, 下图中显示为原图与双边滤波 3 次后眼睛部位的对比。 在 sigma 为 [3 ]可以清晰看见原图中眼睫毛在一次滤波后便被滤出了大部分,之后 3 次中几乎不见眼睫毛了,对于要进行漫画化必须强化边缘的实验是不允许的。 14 次 次 次 次 次 次 次 次 图 所以在对 sigma 的取值判断中,将 值设定为 [240 ]进行操作, 可以看到在 下眼睫毛是有所保存,但是对图像的去噪效 果降低了,为了突出重点所以只能进行多次双边滤波,对每次的结果进行比较选择确定次数以达到需要的效果。 15 第四章 颜色 量化 量化选择 颜色空间模型是指某个三维颜色空间的一个可见光子集合,它包含某个颜色区域的所有颜色。 所有颜色都可以看作三个基本的颜色:红、绿、蓝的不同组合,即三基色原理。 区分颜色还可以常使用三个基本的特征量:色调、饱和度和亮度。 色调和混合光谱中的主要光波长相联系,饱和度则和一定色调的纯度有光,随着白光的加入饱和度会逐渐减少。 一般,常见的颜色模型有 rgb(红、绿、蓝)模型、 HSV(色调、饱和度、亮度)模型, Lab(亮度、颜色对立维度)模型等等。 RGB 颜色空间是图像处理中比较常见的颜色空间,当前许多现有的电子输入设备普遍采用都是 RGB 颜色空间,如电脑显示器、电视机、数码相机、数。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。