基于混合高斯建模方法的运动目标检测方法研究与实现毕业论文(编辑修改稿)内容摘要:

测至关重要,因此视频图像的去噪是一个非常重要的预处理步骤。 对于一个良好的图像处理系统,不论是计算机进行的数字处理还是用模拟处理,都是把减少最前一级的去除噪声作为主攻目标。 在我们对视频图像的检测之前 ,为了能 更好 达到预期的结果 , 避免 噪声等 因素 对视频图像检测效果的 影响 , 首先 应该 对视频 图像的 进行预处理, 本章主要介绍了对视频的读取,图像灰度化,以及几种常用的去噪方法,并综合分析每种方法的优缺点,最后确定使用高斯滤波进行图像去噪。 视频读取 本课题是基于 OpenCV 的 运动 视频检测,使用的是 OpenCV 函数库,搭建在 Visual C++ 环境下 进行编 译 ,其 识别的 视频格式为 avi。 OpenCV 从外部捕获图像 有两种方式 ,一种是从摄像头中 获取 , 另 一种是通过 对 视频 的解码 得到图像。 这 两种 获取图像的 方式都必须从第一帧开始一帧一帧的按顺序获取,因此每获取一帧 图像 后都要保存 其 相应的状态和参数 [8]。 如果 从视频文件中获取,需要保存视频文件的文件名 和 相应的文件名类型, 以及 下一次获取 所 需要解码哪一帧等。 这些信息都保存在 CvCapture 中, 而 每获取一帧后,这些信 息都将被更新,获取下一帧需要将新 的 信息传给获取 信息所 传递的接口。 CvCapture 是一个结构体, 它是 用来保存图像捕获所需要的信息。 通过 设置视频文件的路径 , 然后 在 设置窗口 大小 ,并且可以控制窗口的位置和大小。 cvQueryFrame 从摄像头或者文件中抓取并返回这一帧。 返回的图像不可以被用户释放或者修改。 cvQueryFrame 的参数为 CvCapture 结构 体 的指针。 它的作用是 用来将下一帧视频文件载入内存,返回一个对应当前帧的指针。 与 cvNamedWindow 不同是, cvQueryFrame 6 使用已经在 cvCapture 结构中分配好的内存 ,而 cvNamedWindow 为图像分配内存空间。 而在释放内存的时候, 就没有必要通过 cvReleaseImage 对这个返回的图像指针进行释放,当 CvCapture 结构被释放后,每一帧图像所对应的内存空间即会被释放。 部分代码如下 //打开视频文件 //if(argc == 2) if( !(pCapture = cvCaptureFromFile())) { fprintf(stderr, Can not open video file %s/n, argv[1])。 return 2。 } IplImage* pFrame = NULL。 IplImage* pFrImg = NULL。 IplImage* pBkImg = NULL。 CvCapture* pCapture = NULL。 //声明视频捕捉器,用于捕获视频 int nFrmNum = 0。 cvNamedWindow(video, 1)。 //窗口设置 cvNamedWindow(background,1)。 cvNamedWindow(foreground,1)。 …… CvGaussBGModel* bg_model=NULL。 IplImage *img_erode。 IplImage *img_dilate。 while(pFrame = cvQueryFrame( pCapture )) //从摄像头或文件中读取并返回一帧 {...} 图像灰度化 图像灰度化就是 对 彩色图像中的彩色信息 进行处理 , 将 其变为灰度图像, 只包含亮度信息。 在 计算机中 对图像 灰度图 表示 是 对其图像的 亮度值进行量化 ,将其 等分成 0255共 256 个级别, 0 最暗 (全黑 ), 255 最亮 (全白 ),而在 RGB 模型中,如果 R=G=B,则颜色 (R,G,B)就表示灰度色。 要对图像进行 灰度化 ,就需要 使图像的 RGB 的三个 分量取相等的值, 则 图像 就会 由原来的三维特征降到灰度化后的一维特征 ,在此过程中图像 必然 会 7 丢失部分 的 信息。 常见的灰度化 处理 方法有平均值法、最大值法口、加权平均值法等。 而 不论采取哪种 灰度化处理 方法, 都会将 其原有的颜色特征改变或丢失, 这样就 使得同一 种二值化方法因为不同的灰度化处理过程得到不同的结果,其中 R 表示该像素的红色分量 , G 表示绿色分量, B 表示蓝色分量。 在 OpenCV 函数库中 , 图像的灰度化可以通过 cvCvtColor(pBkImg,pFrImg, CV_BGR2GRAY) 函数实现, 参数 CV_BGR2GRAY 是 RGB 到 GRAY, cvCvtColor(...)是 OpenCV 里的颜色空间转换函数,可以实现 RGB 颜色向 HSV,HSI 等颜色空间的转换,也可以转换为灰度图像。 效果图如 图 21 所示 图 (a)为原始图,图 (b)为灰度化后的图像。 ( a)原始图 (b) 灰度化后的图像 图 21 图像 灰度化 图像去噪 图像去噪是视频 图像 处理 过程中 的重要部分,它是将输入的图像进行滤波去除噪声 ,增强图像,锐化。 视频图像一般经过预处理 、灰度处理之 后, 再加上对图像的滤波去噪,将会改善 感兴趣区域 的 可视化效果, 从而对视频图像的检测起到重要的作用。 因此 , 在对 图像 进行 预处理 时 , 要谨慎的对待, 它关系到图像的下一步质量 ,不容轻视。 图像噪声是 指 图像在摄取时或是传输时所受到的随机干扰信号 ,而 这些 随机 干扰信号的抑制称为图像的噪声抑制 [9]。 一般的图像序列都是有噪声存在的,而 这 些噪声 将影响图像处理 的 效果。 图像传感器带来的噪声在视频图像处理中为主要噪声源。 噪声 的出现 有两种:椒盐噪声和高斯噪声 (白噪声 )。 椒盐噪声 主要 是由 图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声 , 往往由图像切割引起。 中值滤波 是 去除脉冲干 8 扰级椒盐噪声最常用的算法。 高嘶噪声是从频率上说的随机信号干扰,其噪声服从高斯分布。 图像中内在噪声 也可能对图像 的 检测产生 影响,而原始帧由于 其他原因 不可避免的会叠加噪声。 因此,在 对 图像处理之前应该将其去除,以便得到良好的处理效果。 滤波去噪的方法主要有两种 方法, 频域法和空域法。 频域法的计算速度快,但是比较复杂,为了保证实时性,一般采用空域法。 对 场景 中 瞬时环境噪声 的 消除常用的是时间域的滤波,如三帧时间域的滤波。 传感 器噪声的 消除 方法有中值滤波、均值滤波、直方图滤波等空间域上的滤波。 而 任何去除噪声的 方法 都或多或少对图像的质量产生影响,使图像变得模糊。 因此,必须在图像质量和去除噪声之间做出折衷。 在滤波方法中,最常用的有中值滤波 (median filter)、 均值滤波 和 高斯滤波三种。 中值去噪 中值滤波是由 Tukey 提出的 ,它是 一种基于排序统计 的 理论,能 够 有效 的抑制 噪声的非线性信号处理技术。 它也是一种类似于卷积 的 邻域运算,但是 在 计算 过程中并 不是加权求和,而是把数字图像或数字序列中一 个像素 点的值用该点的一个邻域中 各点值的中值代替, 这样会使 周围像素灰度值差 别 比较大的像素改取 为 与周围的像素值 比较 接近的值, 这样能使周围的值更接近真实值, 从而 就能 消除孤立的噪声点。 由于 高频分量对应图像中的区域边缘的灰度值具有较大较快变化的部分, 使用中值去噪 能减弱或消除傅立叶空间的高频分量,该滤波可将这些分量滤除,使图像 变得更加 平滑 , 但 是同时也会影响低频分量 [10]。 在一定的条件下,中值滤波对滤波脉冲干扰及图像扫描噪声非常有效 ,它 可以克服线性滤波器如最小均方滤波、均值滤波 给 图像 带来的 细节模糊, 通过中值滤波不仅 能去除高频噪声,抑制脉冲 干扰, 而且还可以 保持图像清晰 的 轮廓, 由于 在实际运算过程中并 不需要 统计 图像 的 特征,因此使用 中值滤波操作 较 为 方便。 传统的中值滤波 一 般采用含有奇数个点的滑动窗口中各点狄度值的中值来代替指定点的灰度值。 偶数个元素 的 中值是 将数值按大小 排 列 后 ,取其 中间两个元素灰度值 稍微平均值 ; 奇数个元素 的 中值是按大小排序后 而得到 中间的数值。 中值滤波 是 一种用来抑制脉冲噪声 的 典型低通滤波器,它能够彻底滤除尖波干扰噪声, 并且 又具有较好地保护目标图像边缘的特点。 标准一维中值滤波器的定义为 ),...,...,( 11 xxxxx NKNKKNKNKk m e dy  ( 21) 式中, med 表示取中值操作。 中值滤波的滤波方法是 将像素按照 滑动滤波窗口 2N+l做 大 9 小排序,滤波 后 输出像素值为该序列的中值。 例如取 3X3 滑动窗口.中值为窗口内第 5个最大的像素值。 但是 二维中值滤波的窗口形状和尺寸设计 会 对滤波的效果 产生较大的影响 ,在针对 不同的图像内容和不同的应用要求 ,使用 二维中值 时 往往采用不同的形状和尺寸 , 通常的 滤波窗口有线状、方形、圆形、十字形及圆环形等,窗口尺寸一般 设置为 3,也可以根据滤波效果 适当 的调整窗口的 尺寸, 从而得到较好 的滤波效果。 中值的计算 是 对滑动窗口内像素的排序操作 ,这就需要 对序列中的数据像素做比较和交换,数据 不同的排列顺序以及 元素之间 的 比较次数 都会对 排序速度 带来 影响。 传统的排序算法 是用 冒泡排序法 ,这种 滤波算法 使窗口 每移动一次,就要进行一次排序。 在排序的过程中进行了 大量重复 的 比较,当窗口较大时计算量很大,计算需要 的 时间 将会变得更长,这样就会浪费大量的时间。 均值去噪 均值滤波也 被 称为线性滤波, 它所运用的 方法为邻域平均法, 其 基本原理是用邻域的均值替代原图像中的各 个像素值, 通过 对处理的当前像素点 (X,Y)选择一个模板窗口,而 模板 的选取是 由当前像素近邻的若干像素 所 组成, 在对 模板求取所有像素的均值,再把 所求的 均值赋 给 当前 的 像素点,作为处理后图像在该点上的灰度值,具体算法如下: 设 f(x, y)为给定的含有噪声的图像,经过邻域平均 法处理 后 得到 的图像为 g(x, y),则 为 MyxN yxfyxg   ),(,),(),( ( 22) 其中 M 是 对 所取邻域 图像 中各邻近像素的坐标, N 是 邻域中包含的邻近像素的个数。 则邻域平均法的模板为 11111111191 , 中间的元素表示以该像素为中心 的中心 元素, 即 该像素 就是 要进行 预 处理的像素。 但是在实际运用中,可根据不同的需要选择不同的模板尺寸,如 3 5 7 99 等 ,模板尺寸选取会对图像的去噪的效果产生较大的影响, 模板 的 尺寸 选取的 越大,噪声减小就 越显著,但 是不足之处就是 图像的对比度下降 就 越多。 在 使用均值滤波 对 进行图像 进行 平滑往往 会 降低图像清晰度。 另外,均值滤波 只是 将杂点无限放 大 ,使 人眼不易察觉,但不能 从本质上 消除杂点, 因此均值滤波只能处理要求不高的图像, 对椒盐噪声 的去除,使用 均值滤波 得到的图像处理效果并不理想。 10 高斯去噪 高斯滤波是一种适用于消除 高斯 噪声 的 线性 平滑 滤波, 在对 图像处理的 的过程中,大多数去噪方法为高斯去噪。 高斯滤波 通过 对整幅图像进行加权平均, 其中图像中 每 一个 像素 点的值 , 都由其本身和邻域内的其他像素值经过加权平均后得到。 具体操作是:通过 用一个 模板 (或称卷积、掩模) 对 图像中的每一个像素 进行扫描 , 在 用模板确定的邻域内像素 ,对其进行 加权平均 得到 灰度值 ,在用得到的灰度值 去替代模板 中心 像素点的值。 例如在对一帧图像进行处理时 ,拿图像的八连通区域来说, 就是让 中间点的像素值等于八连通区的像素值的均值, 通过这样的方式 达到 图像的 平滑效果。 通过 傅立叶变换 的 高斯函数 仍是高斯函数 , 因此高斯函数频域做乘积来实现高斯滤波 , 在频域 上经过 平滑 处理可得到一个 低通滤波器 [11]。 均值滤波 在 对信号进行 处理时,通过对 局部平均 ,用其 平均值来代表该像素点的 灰度值。 矩形滤波器 (Averaging Box Filter)是 通过计算和转化 ,对 二维矢量的每一个分量进行独立的平滑处理 , 得到一幅单位 矢量图。 这 样的话,对于 512512 的矢量图 就会 被划分成一个 个 88 的小区域 , 再 通过统计每一个小区域内的主要方向 ,在将统计出来 最多的方向作为区域的主方向。 这样 就 能够得到了一个新的 6464 的矢量图。 高斯滤波器是根据高斯函数的形状来选择权值的线性 平滑滤波器 [12],它广泛应用于对图像去噪处理, 它对。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。