资源简介
ViBe是一种像素级视频背景建模或前景检测的算法,效果优于所熟知的几种算法,对硬件内存占用也少。

代码片段和文件信息
%% Parameters
numberOfSamples = param.numberOfSamples;
matchingThreshold = param.matchingThreshold;
matchingNumber = param.matchingNumber;
updateFactor = param.updateFactor;
numberOfHistoryImages = param.numberOfHistoryImages;
%% Initialize ViBe
% originalImage=vidframe;%%开辟一块存储用于保存各像素点的原始背景模型
% flags=unit8(zeros(height width));%%为每一个像素设置一个标志只是该像素点是否保存有原始背景模型,1为保存了原始背景模型,初始化为0
% counters=unit8(zeros(heightwidth));%%为每一个像素点设置一个计数器,用来统计该像素点连续被判为前景的帧数
historyImages = cell(1 numberOfHistoryImages);
for ii = 1:length(historyImages)
historyImages{ii} = vidframe;
end
hsvImage=hsvframe;
historyBuffer = cell(1 numberOfSamples - numberOfHistoryImages);
for ii = 1:length(historyBuffer) %% 通过人为地对图像加入一定范围内的随机噪声构建样本集,这也时官网代码中的做法。
% historyBuffer{ii} = vidframe + double(floor(rand(height width))*20 - 10);
historyBuffer{ii} = vidframe + double(floor(rand(height width)*20- 10) );
end
%% Random Part
% 对于时间取样和空间邻域更新策略,在官网代码实现的时候确实很巧妙,
% 个人觉得很体现代码功力。实现的时候,如果对每一个点都进行概率判断,
% 就相当于遍历了每一个像素点,复杂度为O(height*width);换个角度思考,
% 每个点都有一定概率(比如1/rate)才更新,等同于整幅图图像每次会更新
% 一定概率部分个点,即1/rate*height*width个点更新,这样整体的计算复
% 杂度就会降到O(1/rate*height*width)。
size =2*max(height width) + 1;
% jump[] from 1 to 2*updateFactor
% 官网在实现的时候是通过随机步长的方式,
% 比如,步长为1~(2*rate - 1)之间的一个随机数,
% 每次更新一个点就向前移动一定步长。(假设整幅
% 图像存储为一个一维数组,每次通过加步长计算索
% 引)这样计算下来,平均每次移动的步长约等于rate,
% 那么整幅图像就会有1/rate*height*width进行更新,等价实现
jump = floor(rand(1 size)*2*updateFactor) + 1;%%随机步长
% neighborX Y represent the neighbor index
neighborX = floor(rand(1 size)*3) - 1;% -1~1
neighborY = floor(rand(1 size)*3) - 1;
% position[] from 1 to numberOfSamples
position = floor(rand(1 size)*numberOfSamples) + 1; %1~20
disp(‘Initialize ViBe‘)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2460 2017-02-21 18:00 vibeSegmentation.m
文件 4330 2017-02-21 17:08 vibeUpdate.m
文件 2187 2017-02-21 11:00 initViBe.m
文件 2676 2017-05-10 09:18 main.m
----------- --------- ---------- ----- ----
11653 4
- 上一篇:GN算法实现
- 下一篇:动态模式分解-一种矩阵降阶方法
相关资源
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
- k近邻算法matlab实现
评论
共有 条评论