每天进步一点点------Sobel算子(3)基于彩色图像边缘差分的运动目标检测算法
摘 要: 针对目前常用的运动目标提取易受到噪声影响、易出现阴影和误检漏检等情况,提出了一种基于Sobel算子的彩色边缘图像检测和帧差分相结合的检测方法。首先用Sobel算子提取视频流中连续4帧图像的彩色边缘图像,然后将边缘图像进行隔帧差分相与,提取出较精确的运动目标边缘轮廓。提取的轮廓经过一系列的形态学操作填充,可得到完整的运动目标。实验结果表明,该方法对运动目标边缘轮廓提取准确,抗噪
摘 要: 针对目前常用的运动目标提取易受到噪声影响、易出现阴影和误检漏检等情况,提出了一种基于Sobel算子的彩色边缘图像检测和帧差分相结合的检测方法。首先用Sobel算子提取视频流中连续4帧图像的彩色边缘图像,然后将边缘图像进行隔帧差分相与,提取出较精确的运动目标边缘轮廓。提取的轮廓经过一系列的形态学操作填充,可得到完整的运动目标。实验结果表明,该方法对运动目标边缘轮廓提取准确,抗噪能力强,且鲁棒性好。
关键词: 彩色边缘检测; 隔帧差分; 运动目标提取
运动目标检测是目标识别、跟踪的难点和关键环节,目标提取的好坏直接影响处理结果。而在运动目标检测中遇到最多的问题是提取的前景不准确,受环境影响噪声较多,且阴影难消除。很多文献也提出了改进方法,常用的经典算法有:背景差分、混合高斯背景模型、帧差法等。背景差分[1]首先构建一个背景图像,然后利用当前帧图像与背景图像相减,得到差分图像,通过阈值分割来提取目标。混合高斯模型[2]使用K个(基本为3~5个)高斯模型来表征图像中各个像素点的特征,在新一帧图像获得后更新混合高斯模型, 用当前图像中的每个像素点与混合高斯模型匹配,如果成功,则判定该点为背景点, 否则为前景点。混合高斯背景模型检测运动目标易出现阴影,而对阴影的去除目前存在较大困难。帧差法通过视频流中相邻两帧或3帧图像相减,根据差分图像来检测目标。常用的相邻差分法检测目标存在两帧目标重叠部分不易检测、出现虚假目标等问题。一般来说,图像的边缘信息不易受噪声和亮度突变的影响。本文提出一种边缘差分的思想,将传统Sobel算子边缘检测应用到彩色图像边缘检测,将边缘检测与帧间差分相结合,很好地克服了阴影以及噪声的影响,经形态学处理最后得到较为清晰准确的运动目标。
1 边缘检测
边缘检测算法的基本步骤为:滤波、增强、检测和定位。经典的检测算法主要采用梯度算子,常用的梯度算子有Sobel算子、Prewitt算子、Canny算子、Laplacian算子和LOG算子[3]等。
1.1 Sobel算子检测边缘
Sobel算子把重点放在接近于模板中心的像素点,是边缘检测器中最常用的算子之一。
1.1.1 Sobel算法原理
由于图像边缘附近的亮度变化比较大,因此把那些邻域内灰度超过某个值的像素点当作边缘点。算法的主要步骤如下。
(1)分别将两个方向模板沿着图像从一个像素移动到另一像素,并将像素的中心与某个像素位置相重合;
(2)将模板内的系数与其图像上相对应的像素值相乘;
(3)将所有相乘的值相加;
(4)将两个卷积的最大值赋给图像中对应模板中心位置的像素作为该像素新的灰度值;
(5)选取合适的阈值TH,若新像素灰度值≥TH,则判断该像素点为图像边缘点。

1.1.2 Sobel算子彩色图像边缘检测的实现和改进
本文算法针对彩色图像,建立水平方向和垂直方向的彩色分量图[5],具体步骤如下。
(1)遍历一幅彩色图像,取图像上像素的颜色值;
(2)将像素的R、G、B灰度值分别赋给水平方向和垂直方向彩色分量图对应像素的R、G、B值;
(3)分别计算原图像中像素的R、G、B分量在水平和垂直方向与模板(掩膜)卷积的累加值,卷积模板选用上述Sobel核,Sobel算子使用权重2的思想是通过突出中心点的作用而达到平滑的目的;
(4)将累加值除以某个权重,取绝对值赋给上述分量图的R、G、B值;
(5)用式(1)计算该像素的R、G、B梯度值,赋给原图像对应的R、G、B值,得到彩色边缘图像。
Sobel算子利用像素的上、下、左、右邻域的灰度值加权算法,算法利用图1(a)所示的模板分别与图1(b)和图1(c)所示的两个核做卷积,一个核对垂直边缘影响最大,而另一个核对水平边缘影响最大。该方法不但产生较好的检测效果,而且对噪声具有平滑作用,可以提供较为精确的边缘,因此选用Sobel算子进行边缘检测,结合后面的帧差分,可以得到准确、良好的边缘轮廓图像[6]。

2.2 边缘检测与差分相结合
本文算法的流程如图2所示。

用本文提出的改进Sobel算子彩色图像边缘检测方法从视频流中提取连续的4帧图像,得到它们的边缘图像,然后用上述4帧差分的思想作边缘图像的隔帧差分,得到准确、噪声很小的运动目标边缘轮廓。
2.3 形态学处理
2.3.1 腐蚀运算
腐蚀是指用某种形状的基元对一个图像进行探测,以便找出在图像中能够放下该基元的区域。集合A被集合B腐蚀,表示为AΘB,其定义为

每天进步一点点------Sobel算子(3)基于彩色图像边缘差分的运动目标检测算法的更多相关文章
- 每天进步一点点------Sobel算子(1)
void MySobel(IplImage* gray, IplImage* gradient) { /* Sobel template a00 a01 a02 a10 a11 a12 a20 a21 ...
- 基于模糊Choquet积分的目标检测算法
本文根据论文:Fuzzy Integral for Moving Object Detection-FUZZ-IEEE_2008的内容及自己的理解而成,如果想了解更多细节,请参考原文.在背景建模中,我 ...
- 【计算机视觉】基于局部二值相似性模式(LBSP)的运动目标检测算法
基于局部二值相似性模式(LBSP)的运动目标检测算法 kezunhai@gmail.com http://blog.csdn.net/kezunhai 本文根据论文:Improving backgro ...
- 【计算机视觉】基于样本一致性的背景减除运动目标检测算法(SACON)
SACON(SAmple CONsensus)算法是基于样本一致性的运动目标检测算法.该算法通过对每个像素进行样本一致性判断来判定像素是否为背景. 算法框架图 由上图可知,该算法主要分为四个主要部分, ...
- 基于COCO数据集验证的目标检测算法天梯排行榜
基于COCO数据集验证的目标检测算法天梯排行榜 AP50 Rank Model box AP AP50 Paper Code Result Year Tags 1 SwinV2-G (HTC++) 6 ...
- 每天进步一点点------Sobel算子(2)
转载 http://blog.csdn.net/tianhai110 索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值. ...
- 基于Shading Model(对光照变化一定不变性)的运动目标检测算法
光照模型(Shading Model)在很多论文中得到了广泛的应用,如robust and illumination invariant change detection based on linea ...
- 五种基于RGB色彩空间统计的皮肤检测算法
最近一直在研究多脸谱识别以及如何分辨多个皮肤区域是否是人脸的问题 网上找了很多资料,看了很多篇文章,将其中基于RGB色彩空间识别皮肤 的统计算法做了一下总结,统计识别方法主要是简单相比与很多其它基于 ...
- 【计算机视觉】基于Shading Model(对光照变化一定不变性)的运动目标检测算法
光照模型(Shading Model)在很多论文中得到了广泛的应用,如robust and illumination invariant change detection based on linea ...
随机推荐
- AntDesign(React)学习-14 使用UMI提供的antd模板
1.UMI提供了可视化antd模板,可以直接添加到项目中修改用 比如将个人中心添加到项目中 2.选择个人中心,确定 3.成功 4.打开项目 5.Route文件也自动添加 根路由有exact:true后 ...
- HTML的学习结构
HTML的学习结构 HTML的背景 HTML的创建 HTML的网页基本结构 HTML的基本标签 HTML的图像标签 HTML的链接标签 HTML的列表标签和表格标签 HTML的媒体元素(视频+音频) ...
- 腾讯短链接url生成接口/腾讯短网址在线生成/新浪微博短链接生成器的分享
在通常情况下,URL是由系统生成的,通常包括URI路径,多个查询参数,可以对参数进行加密和解密. 当人们要分享某个URL,比如短信,邮件,社交媒体,这就需要短URL.而短网址,顾名思义就是在长度上比较 ...
- INEQUALITY BOOKS
来源:这里 Bất Đẳng Thức Luôn Có Một Sức Cuốn Hút Kinh Khủng, Một Số tài Liệu và Sách Bổ ích Cho Việc Học ...
- pytest学习1-安装和入门
一.安装pytest: 在命令行窗口下执行: pip install -U pytest 检查安装的pytest版本: pytest -v 二.运行第一个测试用例: import pytest def ...
- unity的一些特殊目录
Hidden Folders Folders that start with a dot (e.g. ".UnitTests/", ".svn/") are i ...
- c#窗体进度条
c#窗体进度条 //进度条的最大值 ; progressBar1.Maximum = Convert.ToInt32(a); ;i<progressBar1.Maximum;i++) { //进 ...
- LUT
FPGA大多为LUT+寄存器的够,实现工艺为SRAM:寄存器很好理解,存储器的一种,用于存储指令和数据,多位于CPU内.拿什么是LUT呢? LUT:即Look up table,查找表,其本质是一个R ...
- jquery使用ajax实现实时刷新,轮询
来自:https://blog.csdn.net/qq_25406669/article/details/78343082 var isLoaded = false; function reqs() ...
- Entity Framework 简介
Entity Framework Entity Framework 的全称为 ADO.NET Entity Framework,简称 EF. 1.与 ADO.NET 的关系 Entity F ...