法师线——图像处理算法

背景更新

Ptr<BackgroundSubtractor> bg_model = createBackgroundSubtractorMOG2();
//得到前景
bg_model->apply(img, fgmask);
fgimg = scalar::all(0);
img.copyTo(fgimg, fgmask);
//得到背景
bg_model->getBackgroundImage(bgimg);

原理:利用gmm(Gaussian of Mixture Models, GMM)混合高斯模型进行建立背景模型。

混合高斯模型的原理:

每个像素的R、G、B三个通道像素值的变化分别由一个混合高斯模型分布来刻画。这样的好处在于,同一个像素位置处可以呈现多个模态的像素值变化(例如水波纹,晃动的叶子等)。

GMM的出处:Adaptive background mixture models for real-time tracking (1999年由Chris Stau er提出)

Camshift

Camshift原理
camshift利用目标的颜色直方图模型将图像转换为颜色概率分布图,初始化一个搜索窗的大小和位置,并根据上一帧得到的结果自适应调整搜索窗口的位置和大小,从而定位出当前图像中目标的中心位置。

步骤:
1–色彩投影图(反向投影)
rgb->hsv(色调,饱和度,明度)。将图像中每个像素的值用其颜色(h色调)出现的概率对替换,就得到了颜色概率分布图。
2–meanshift
meanshift算法是一种密度函数梯度估计的非参数方法,通过迭代寻优找到概率分布的极值来定位目标
3–camshift
将meanshift算法扩展到连续图像序列,就是camshift算法。它将视频的所有帧做meanshift运算,并将上一帧的结果,即搜索窗的大小和中心,作为下一帧meanshift算法搜索窗的初始值。如此迭代下去,就可以实现对目标的跟踪。

evaluation:
camshift能有效解决目标变形和遮挡的问题,对系统资源要求不高,时间复杂度低,在简单背景下能够取得良好的跟踪效果。但当背景较为复杂,或者有许多与目标颜色相似像素干扰的情况下,会导致跟踪失败。因为它单纯的考虑颜色直方图,忽略了目标的空间分布特性,所以这种情况下需加入对跟踪目标的预测算法。

sift

详情
1. 构建尺度空间
2. 检测DOG尺度空间极值点
3. 除去不好的特征点
4. 给特征点赋值一个128维方向参数
5. 关键点描述子的生成
6. 根据SIFT进行Match


常考知识点(来源百度)

图像有哪些特征

颜色特征: 颜色直方图表示颜色特征
纹理特征
形状特征:Hough变换
空间关系特征:提取图像空间关系特征可以有两种方法:一种方法是首先对图像进行自动分割,划分出图像中所包含的对象或颜色区域,然后根据这些区域提取图像特征,并建立索引;另一种方法则简单地将图像均匀地划分为若干规则子块,然后对每个图像子块提取特征,并建立索引。

常用边缘检测有哪些算子,各有什么特性?

sobel 算子:详情
1. Sobel算子包含两组3x3的矩阵(离散型),分别为横向及纵向模板,将之与图像作平面卷积(Sobel算子根据像素点上下、左右邻点灰度加权差。),即可分别得出横向及纵向的亮度差分近似值 .
2. 优点:由于该算子中引入了类似局部平均的运算,因此对噪声具有平滑作用,能很好的消除噪声的影响。
3. 缺点:边缘定位精度不够高。

Canny算子详情
1. 包括 滤波、增强、检测三个阶段。
a. 滤波: 高斯平滑滤波器来平滑图像以除去噪声
b. 增强: 在Canny算法中,非极大值抑制是进行边缘检测的重要步骤,通俗意义上是指寻找像素点局部最大值,将非极大值点所对应的灰度值置为0,这样可以剔除掉一大部分非边缘的点
c. 2x2的算子

  1. 优点:Canny算子边缘检测是一种比较实用的边缘检测算子,具有很好的边缘检测性能。Canny边缘检测法利用高斯函数的一阶微分,它能在噪声抑制和边缘检测之间取得较好的平衡。

Laplacian of Gaussian(LoG)算子详情
1. LoG边缘检测器的基本特征是: 平滑滤波器是高斯滤波器.增强步骤采用二阶导数(二维拉普拉斯函数).边缘检测判据是二阶导数零交叉点并对应一阶导数的较大峰值
1)对原图像进行Log卷积。
2)检测图像中的过零点( Zero Crossings,也即从负到正或从正到负)。
3)对过零点进行阈值化。

你可能感兴趣的:(基础知识)