基于opencv的图像滤波实验_第1页
基于opencv的图像滤波实验_第2页
基于opencv的图像滤波实验_第3页
基于opencv的图像滤波实验_第4页
基于opencv的图像滤波实验_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

图像的滤波处理图像的滤波处理 第二次编程练习第二次编程练习 概述:概述: 有关程序:有关程序:程序运行的时候先输入 MSE PSNR 的输出文件地址,再输入希望滤波的图 片地址,接着输入原来未污染的图片地址,这时输出受污染的图片与原图的 MSE, PSNR, 接着选择滤波器类型,输出滤波图片保存位置,同时写入滤波后的 MSE,PSNR。这时用户可 以选择重新换一张图片滤波或者对同一张图片进行不同滤波处理 有关报告:有关报告:报告第一部分介绍程序实现的主要功能,第二部分介绍滤波实现理论思路, 第三部分对滤波的结果进行量化分析(对提供的 10 张图片分别进行不同窗口大小的均值, 中值滤波,改进的自适应中值滤波,以及双边滤波,并对结果分析,计算滤波后的 MSE,PSNR,并附表格。第四部分主要是编程的心得体会。 一一. 主要编程实现的功能主要编程实现的功能 主要对输入的图像进行了基于 3*3 窗口,以及 5*5 窗口的线性均值滤波;基于 3*3 窗口, 以及 5*5 窗口的非线性的中值滤波。在提高部分,在线性滤波的基础之上,采用了同时考 虑像素点与中心像素点距离,以及像素值差距的双边滤波器;在非线性的中值滤波器的基 础上,采用了自适应的中值滤波器,也即根据窗口中噪声点的多少自动地调节滤波窗口的 大小,这两种改进的滤波方法都在滤除噪声点的同时保护边缘特性,其中双边滤波器对高 斯噪声的滤波效果较为明显,而自适应的中值滤波器对于椒盐噪声的滤波效果较好。 二二. 设计思路设计思路 (一)对图片进行基本的打开,保存等操作(一)对图片进行基本的打开,保存等操作 在刚开始编程的时候,没有了解到可以调用 opencv 的库函数进行图片的调用,就采取 了直接读取图片的文件头信息头的方式,进行图片的读入以及写入操作。在这个过程中, 我也了解到了位图的信息头,文件头,像素点的表达方式。 位图文件由三部分组成:文件头 + 位图信息 + 位图像素数据,如下为位图文件头的 结构体。 typedef struct tagBITMAPFILEHEADER WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; BITMAPFILEHEADER; 位图信息中所记录的值用于分配内存,设置调色板信息,读取像素值等。如下为位图的 信息结构体, typedef struct tagBITMAPINFO BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColors1; BITMAPINFO; 位图信息头包含了单个像素所用字节数以及描述颜色的格式,此外还包括位图的宽度、 高度、目标设备的位平面数、图像的压缩格式。以下是位图信息头结构的定义: typedef struct tagBITMAPINFOHEADER / bmih DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; BITMAPINFOHEADER; 在实际的操作中,我们可以通过定义位图的信息头,文件头等结构体,通过读入的方式, 来引用结构体中像素点的像素值,图片的长度,宽度等。下图为使用读入的方法查看图片 的信息 然而在之后,我了解到可以使用 opencv 的库函数进行操作,就直接使用 cvLoadImage, 这个函数进行图片的读入,使用 image-imageData 的方式来引用图片的像素点值,从而进 行滤波的操作。 (二)不同滤波器实现原理(二)不同滤波器实现原理 1. 均值滤波器均值滤波器 (1)原理)原理 均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是 计算机体系结构 用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y) ,选择一个模板,该 模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点 (x,y) ,作为处理后图像在该点上的灰度值 g(x,y) ,即,m 为 1 g( , )( , )x yf x y m 该模板中包含当前像素在内的像素总个数。 (2)模板采用 均值滤波的时候,采用不同大小的掩膜。不同系数的掩膜,得到的滤波效果会有很大的差 别。根据公式 , i j yHX 其中 H 为的掩膜的系数矩阵,X 为以为中心点周围大小的矩阵的像素点的值。n n , i j yn n 模板一 当采用 3*3 的模板的时候 -1-1-1 -18-1 -1-1-1 从模板的系数可以看出,这里计算得到的是中间像素点与周围临近的-1 个像素点n n 像素值之间的差距,因而在第一次尝试中,主要的计算方法是,该模板计算得到的数 值加上中间像素点的值,也即就是像素点的值由其与周围-1 个像素点的像素值的n n 区别决定,而得到的图像的滤波效果十分差。如下图(对 lena 图进行 3*3 的均值滤波 处理) 我又重新仔细考虑了原因,根据以上的计算方法,由于噪声点的像素值与周围点的像 素值差距十分大,假设周围像素点的值都接近 255,而中间噪声点的值接近 0,这时得到的 中间点的像素值就应该为负值,由于位图的像素点值为 0-255 无符号整数,因而会直接变 为 0,这样的点多了,就会使得图像失去原来的性质。 为了解决以上的问题,我开始想到为所有的像素点加一个偏移量,或者是在计算结束 后,将得到的负数的值按照一定的规律映射到 0-255,但是都没有得到十分理想的结果。 我之后考虑到,由于我们计算得到的是中心像素点相对于邻近点的偏移量,又考虑到 噪声相对于邻近点的像素差距很大,因而,可设定一个阈值,如果计算得到的偏移量超过 了该阈值,则认为该点是噪声点,使用周围-1 个点的像素值(去除噪声点像素值对于n n 均值的影响)的均值替代中心像素点的像素值。如果在阈值范围内,就认为是信号点,不 改变该点的像素值,得到了较好的滤波效果。如下图 图片相对于原图的均方误差 MSE=110.007835;峰值信噪比 PSNR= 27.716567dB 模板二 1/91/91/9 1/91/91/9 1/91/91/9 对于均值滤波还可以采取如上图的滤波掩模系数,也就是将 9 个点的像素值加起来求平 均。下图为 lena 图的中值滤波效果 计算机体系结构 图像的 MSE=99.638870;PSNR=28.146516 (3)存在的问题)存在的问题 均值滤波器作为一种线性的滤波器,将邻近点的像素的均值作为中心点的像素值,在 滤除噪声的同时,也使得图像的边缘或者一些细节的信息丢失,当滤波窗口增大时,滤波 的效果增强,但是边缘的模糊程度加深,难以在滤除噪声点的同时保持图像的边缘等细节 信息。 2. 中值滤波器中值滤波器 (1)原理)原理 中值滤波是一种非线性数字滤波器技术,经常用于去除图像或者其它信号中的噪声。 这个设计思想就是检查输入信号中的采样并判断它是否代表了信号,使用奇数个采样组成 的观察窗实现这项功能。观察窗口中的数值进行排序,位于观察窗中间的中值作为输出。 然后,丢弃最早的值,取得新的采样,重复上面的计算过程。它对于斑点噪声(en:speckle noise)和椒盐噪声(en:salt-and-pepper noise)来说尤其有用。 (2)实现)实现 采用的滤波窗口,对窗口内的像素点根据像素值进行排序,我这里采用的是冒泡排n n 序的方法,在排序结束之后取中间值作为中心像素点的像素值。 (这里的滤波窗口需要为奇 数) 。由于中值滤波并没有将像素点像素值取平均,对边缘的保护程度要稍强于均值滤波。 下图为 lena 图 3*3 的中值滤波效果 图片相对于原图的均方误差 MSE=136.439793;PSNR=26.781393。 可以看到图片的滤波效果并不是很理想,对于高斯噪声,中值滤波器并不能够很好的滤 除噪声,而对于脉冲噪声,如椒盐噪声,由于噪声点的值一般为 255 或 0,一般为滤波窗 口的极大值或者极小值,滤波效果会有很大的改善。如下图 相对于原图的 MSE=32.402124 PSNR=33.025069dB (3)存在的问题)存在的问题 中值滤波当图片受到噪声污染较为严重的时候,如果一个滤波窗口中的像素点超过 20%(经验值) ,由于噪声的影响,滤波的效果就会变得很差,很多噪声点会难以滤除,如 果这时将滤波的窗口加大,就可能使得边缘等细节的信息丢失,使得图像变得模糊。简单 的中值滤波很难解决滤波窗口大小的问题。 计算机体系结构 3. 双边滤波器双边滤波器 (1)原理)原理 双边滤波可以保持边缘,滤波算法中,目标点上的像素值通常是由其所在位置上的周围 的一个小局部邻居像素的值所决定。在 2D 高斯滤波中的具体实现就是对周围的一定范围 内的像素值分别赋以不同的高斯权重值,并在加权平均后得到当前点的最终结果。而这里 的高斯权重因子是利用两个像素之间的空间距离(在图像中为 2D)关系来生成。通过高斯 分布的曲线可以发现,离目标像素越近的点对最终结果的贡献越大,反之则越小。其公式 化的描述一般如下所述: 1 ( )( )( ) ( , )h xkxfcx d ( )( , ) d kxcx d 为基于空间距离的高斯权重,是对结果进行归一化。c d k 但是如果只考虑了像素间的空间位置上的关系,因此滤波的结果会丢失边缘的信息。 这里的边缘主要是指图像中灰度值剧烈变化的边界,而双边滤波就是在高斯滤波中加入了 另外的一个权重分部来解决这一问题。双边滤波中对于边缘的保持通过下述表达式来实现: 1 ( )( )( ) ( ( ),( ) r h xkxfs ff x d ( )( ( ),( ) r kxs ff x d 为基于像素间相似度的高斯权重,用于归一化。s( ) r kx 当将两中考量的方式进行综合的时候,就可以得到双边滤波法。如下式 1 ( )( )( ) ( , ) ( ( ),( )h xkxfcx s ff 其中 2 1( , ) () 2 ( , ) d dx cxe 2 1( ),( ) () 2 ( , ) r ff sxe 在代码中只要实现根据公式计算高斯空间权重,与高斯像素点权重,就可以实现计算每 个像素点的像素值,滤波的效果与均值滤波有了比较大的提升,如下图为 cameraman 图当 高斯空间均方差取 50,高斯像素点均方差也取 50,窗口大小为 3,得到的滤波图像 图片与原图相比较 MSE=147.752670; PSNR=26.435450dB 而均值滤波器得到的 MSE=305.86439;PSNR=23.27545 下图为 3*3 的均值滤波器得到的图像 可以明显地看到,双边滤波相对于均值滤波很好的保护了图像的边缘特性。 (3)存在的问题)存在的问题 双边滤波器需要计算高斯空间权重,高斯像素点权重,计算量较大,当图片较大的时 候,运算所需要的空间会比较大,运算的时间复杂度也会较大。双边滤波器主要适用于被 高斯噪声污染的图片,对于类似于椒盐噪声污染的图片滤波的效果会稍差。 4. 自适应的中值滤波器自适应的中值滤波器 (1)原理)原理 自适应中值滤波的思想是根据噪声密度改变滤波窗口的大小,同时对噪声点和信号点 采取不同的处理方法。对噪声点进行中值滤波,对信号点保持其灰度值不变。算法的主要 思想:假定最大允许的滤波窗口为,先判断滤波窗口的中值是否为噪声点,也就是 max win 如果 ,认为中心值不为噪声点,进入下一步,否则,认为滤波窗口中的 min f med f max f 噪声,影响到了中心点的像素值,扩大滤波的窗口直到最大的滤波窗口为止。 在第二步中,判断中心点的像素值是否是噪声,也即当 ,认为是信号 min f ij f max f 点,输出原来的像素值,当中心点的像素值为滤波窗口的最大像素值或最小像素值时,这 时认为该点为噪声点,输出中值。 然而,在计算的过程发现,判断一个点是否为噪声点的主要因素为与,当边 min f max f 缘变化十分剧烈的时候,有可能使得一些细节的边缘信息丢失。 为了避免将高频信号点误分为噪声,引入了最小集合距离 MD。值为的像素与集合 ij f 的 MD 定义为: min k k ijz Z MDff MD 计算的是中心像素与周围像素点像素的差距,如果差距越小的话,就认为该点为 计算机体系结构 噪声点的可能性越小。当 MD 小于阈值,则该点认为是信号点。 在窗口自适应的时候,如果该点为根据判断之后的噪声点则扩大窗口,在中值输出的 时候,输出除了噪声以外的信号点的像素值。得到了很好的滤波效果,如下图 可以看到毛发等边缘信息保存完好。与原图相比的 MSE=25.369306 PSNR=34.087718dB 与中值滤波得到 MSE=32.402124 PSNR=33.025069dB,有了改善,如果图片的污染程度进 一步提高的话,改善的效果会更加明显。 (3)存在的不足)存在的不足 自适应的中值滤波器对椒盐噪声等脉冲噪声的滤波效果十分好,但是对于高斯噪声的滤 波效果不是很明显,因为高斯噪声噪声的像素值大多都在 之中,按照算法, min f ij f max f 这样的点认为是非噪声点。在实际操作中,可以先判断,污染图片的噪声是否是脉冲噪声, 再进行自适应的中值滤波,或者双边滤波。 三三. 滤波效果分析滤波效果分析 在滤波效果的分析中,我主要采用了主观的观察,以及用数据 MSE 和 PSNR 计算来评 价滤波的效果。 如下是 MSE(均方差)的定义,I(I,j) ,K(I,j)分别是两个图像对应点的像素值。 如下是 PSNR(峰值信噪比)的定义 峰值信噪比反映的是像素点信号与噪声的比例,愈高愈好,均方差反映的是图像像素 点与未污染像素点之间的差距,愈小愈好。 下表是统计了图片库中图片滤波前的 MSE PSNR 以及滤波后的 MSE PSNR。其中主要采 用了 3*3 均值滤波,5*5 均值滤波,3*3 中值滤波,5*5 中值滤波,双边滤波(参数:窗口 为 3,空间相关 sigma 为 50,像素点相关 sigma 为 50) ,自适应滤波(改进的阈值为 20, 最小窗口 3,最大窗口 9) 图片名称图片名称滤波方法滤波方法滤波前滤波前 MSE滤波前滤波前 PSNR/dB 滤波后滤波后 MSE滤波后滤波后 PSNR/dB 01_gray_lenaG3*3 均值滤 波 640.10804720.06927199.63887028.146516 01_gray_lenaG5*5 均值滤 波 640.10804720.06927199.13930528.168345 01_gray_lenaG3*3 中值滤 波 640.10804720.069271136.43979326.781393 01_gray_lenaG5*5 中值滤 波 640.10804720.069271101.98755328.045332 01_gray_lenaG双边滤波640.10804720.06927199.02875528.173190 01_gray_lenaG自适应中值 滤波 640.10804720.069271319.79337723.082109 02_cameramanG3*3 均值滤 波 579.40695220.368101305.8643923.275457 02_cameramanG5*5 均值滤 波 579.40695220.368101475.32167121.351800 02_cameramanG3*3 中值滤 波 579.40695220.368101287.84416223.539229 02_cameramanG5*5 中值滤 波 579.40695220.368101420.01370221.898169 02_cameramanG双边滤波579.40695220.368101147.75267026.435450 02_cameramanG自适应中值 滤波 579.40695220.368101441.90232821.677541 03_manG3*3 均值滤 波 579.85526220.497608120.53896327.319529 03_manG5*5 均值滤 波 579.85526220.497608141.11594526.635043 03_manG3*3 中值滤 波 579.85526220.497608147.27520826.449507 03_manG5*5 中值滤 波 579.85526220.497608131.76834426.932693 03_manG双边滤波579.85526220.497608114.85674127.529239 03_manG自适应中值 滤波 579.85526220.497608310.58015323.209067 04_audreyG3*3 均值滤 波 414.79356921.952483185.73939425.441763 04_audreyG5*5 均值滤 波 414.79356921.952483303.45845123.309811 04_audreyG3*3 中值滤 波 414.79356921.952483149.37791226.387940 04_audreyG5*5 中值滤 波 414.79356921.952483190.49826625.331893 计算机体系结构 04_audreyG双边滤波414.79356921.952483173.63291225.734483 04_audreyG自适应中值 滤波 (r=60;d=10) 414.79356921.952483152.94500026.285451 05_FDPS3*3 均值滤 波 1350.26325716.826619239.9983524.328748 05_FDPS5*5 均值滤 波 1350.26325716.826619240.03320924.328090 05_FDPS3*3 中值滤 波 1350.26325716.82661955.93630030.653866 05_FDPS5*5 中值滤 波 1350.26325716.826619139.73122826.67869 05_FDPS双边滤波1350.26325716.8266191308.3172516.963673 05_FDPS自适应中值 滤波 1350.26325716.82661950.52126031.096062 06_xianghuitangPS3*3 均值滤 波 945.50323418.374173190.11826125.340565 06_xianghuitangPS5*5 均值滤 波 945.50323418.374173211.14052824.885088 06_xianghuitangPS3*3 中值滤 波 945.50323418.37417364.19711630.055648 06_xianghuitangPS5*5 中值滤 波 945.50323418.374173133.83753726.865024 06_xianghuitangPS双边滤波945.50323418.374173717.79722319.570786 06_xianghuitangPS自适应中值 滤波 945.50323418.37417353.52072430.845584 07_tonglinshidaiPS3*3 均值滤 波 1162.98542717.475061215.96928624.786884 07_tonglinshidaiPS5*5 均值滤 波 1162.98542717.475061202.72644625.061702 07_tonglinshidaiPS3*3 中值滤 波 1162.98542717.47506154.61649730.757565 07_tonglinshidaiPS5*5 中值滤 波 1162.98542717.475061114.95730827.525438 07_tonglinshidaiPS双边滤波1162.98542717.4750611057.06244317.889797 07_tonglinshidaiPS自适应中值 滤波 1162.98542717.47506165.99270329.935844 08_wolfPS3*3 均值滤 波 1142.49804817.552249179.70177425.585280 08_wolfPS5*5 均值滤 波 1142.49804817.552249145.64960426.497711 08_wolfPS3*3 中值滤 波 1142.49804817.55224932.40212433.025069 08_wolfPS5*5 中值滤 波 1142.49804817.55224975.76220929.336277 08_wolfPS双边滤波1142.49804817.552249999.30138718.133839 08_wolfPS自适应中值 滤波 1142.49804817.55224925.36930634.087718 09_zhouzongliPS3*3 均值滤 波 1194.29462117.359689258.36747024.008425 09_zhouzongliPS5*5 均值滤 波 1194.29462117.359689279.76269923.772954 09_zhouzongliPS3*3 中值滤 波 1194.29462117.359689118.35156727.399063 09_zhouzongliPS5*5 中值滤 波 1194.29462117.359689160.53668826.0750

温馨提示

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

评论

0/150

提交评论