每天进步一点点------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 ...
随机推荐
- execute、executeUpdate、executeQuery的区别
链接:https://blog.csdn.net/u012501054/article/details/80323176 链接:https://blog.csdn.net/CNAHYZ/article ...
- main中的argv和argc
int main(int argc,char* argv[]) 给程序传递命令行参数:第一个参数的值是第二个参数的数组元素个数,即统计运行程序时送给main函数的命令行参数个数. 第二个参数总是cha ...
- php中构建树状图
/** * 指定根层级的树状图 * @param array $list 初始数组 * @param int $root 最上级一条数据的id * @param string $pk 每一条数据的id ...
- 《CSS揭秘》》
1,透明边框 默认状态下,背景会延伸到边框区域的下层.这样就在半透明的黑色边框中透出了这个容器自己的纯白色背景. 谢天谢地,从w3c的背景与边框第三版开始,我们可以通过 background-clip ...
- C++学习网站总结
http://club.topsage.com/thread-361504-1-1.html Visual C++ (VC) / MFC 电子书下载: Visual C++ 2008 入门经典 (中文 ...
- Java学习笔记(十一)面向对象---多态
多态的体现 父类的引用指向了自己的子类对象. 父类的引用也可以接受自己的子类对象. 代码体现 abstract class Animal { public abstract void eat(); } ...
- istio部署-istio jaeger & kiali
参考 fleeto/sleep fleeto/flaskapp jaegertracing/jaeger kiali kiali/kiali kiali/kiali-ui kiali/kiali/ta ...
- python基础数据类型 数据类型
数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定 ...
- 通过JMX获取JVM信息
package com.googosoft.gateway_zuul; import java.lang.management.ClassLoadingMXBean; import java.lang ...
- Chrome浏览器支持跨域访问
创建一个chrome的快捷方式,并加上参数 --allow-file-access-from-files --disable-web-security --user-data-dir="D: ...