用最简单的差分法实现了一下前景分割。使用的mall数据集。

思路是这样的:首先设定一个队列的长度,若读取的图片张数少于队列长度则以当前读取到的图片做平均。否则则以队列中的图片做平均。

这样之后和当前图片做差分,大于差分阈值的就是前景。

%init
close all ;
path = './mall_dataset/frames/';
numofImages = 30 ;
image_cells = cell(numofImages,1) ;
E = cell(numofImages,1) ;
Em = cell(numofImages,1) ; %param
Wh = 10 ;%人高
Ww = 5 ;%人宽
defualtLenOfList = 5 ;%前景差分时默认的队列长度
dif_t = 60 ;%差分阈值 %kenel
gaussian_kenel = fspecial('gaussian',3,0.5) ; %program
for i=1:numofImages
temp = i ;
prefix = 'seq_00' ;
while temp < 1000
prefix = strcat(prefix,'0') ;
temp = temp*10 ;
end
prefix = strcat(prefix,num2str(i)) ;
I=imread([path,prefix,'.jpg']); %依次读取每一幅图像
I = rgb2gray(I);
I = imfilter(I,gaussian_kenel) ;
%I = uint8(I) ;
[Gmag,Gdir] = imgradient(I) ;
E{i}.Gmag = Gmag;
E{i}.Gdir = Gdir ;
image_cells{i} = I ;
%todo strip高=wp/W? 不一定好
%差分处理
Gmean = 0 ;
if i~=1 if i>defualtLenOfList
lenoflist = defualtLenOfList ;
else
lenoflist = i-1 ;
end Lstart = i-lenoflist ;
Ltail = i-1 ;
for j=Lstart:Ltail
Gmean = Gmean + (E{j}.Gmag ./ lenoflist) ;
end Lmean = 0 ;if lenoflist>=defualtLenOfList
for k=Lstart:Ltail
Lmean = Lmean + (E{k}.Gmag./lenoflist) ;
end
for k=Lstart:Ltail
Lvar = Lvar+((E{k}.Gmag-Lmean).^2)./lenoflist ;
end
end Gmoving = E{i}.Gmag - Gmean ;
Gmoving = Gmoving .* (Gmoving>dif_t) ;
G = uint8(Gmoving);
imshow(G) ;
end
end

matlab前景分割的更多相关文章

  1. matlab 字符分割

    http://blog.csdn.net/gotomic/article/details/7898307 注意到以'.'分割时,写成'\.'.前者代表其他含义.可通过help regexp来查询. 例 ...

  2. matlab 车牌分割的算法

    function Touying(g) f=rgb2gray(g); % [m n]=size(f); [row col]=size(f); % T=graythresh(f) % T=T*255 % ...

  3. Matlab字符串分割

    data = '1.21, 1.985, 1.955, 2.015, 1.885'; C = strsplit(data,', ') C = '1.21' '1.985' '1.955' '2.015 ...

  4. paper 83:前景检测算法_1(codebook和平均背景法)

    前景分割中一个非常重要的研究方向就是背景减图法,因为背景减图的方法简单,原理容易被想到,且在智能视频监控领域中,摄像机很多情况下是固定的,且背景也是基本不变或者是缓慢变换的,在这种场合背景减图法的应用 ...

  5. 灰度图像阈值化分割常见方法总结及VC实现

    转载地址:http://blog.csdn.net/likezhaobin/article/details/6915755 在图像处理领域,二值图像运算量小,并且能够体现图像的关键特征,因此被广泛使用 ...

  6. 笔记︱图像语义分割(FCN、CRF、MRF)、论文延伸(Pixel Objectness、)

    图像语义分割的意思就是机器自动分割并识别出图像中的内容,我的理解是抠图- 之前在Faster R-CNN中借用了RPN(region proposal network)选择候选框,但是仅仅是候选框,那 ...

  7. OSVOS 半监督视频分割入门论文(中文翻译)

    摘要: 本文解决了半监督视频目标分割的问题.给定第一帧的mask,将目标从视频背景中分离出来.本文提出OSVOS,基于FCN框架的,可以连续依次地将在IMAGENET上学到的信息转移到通用语义信息,实 ...

  8. 实例分割:MaskXRCnn 与Visual Genome数据集

    一.VG数据集 机器学习领域的突破突然让计算机获得了以未曾有的高精度识别图像中物体的能力--几乎达到了让人惊恐的程度.现在的问题是机器是否还能更上层楼,学会理解这些图片中所发生的事件. Visual ...

  9. 使用OpenCV进行简单的人像分割与合成

    图像合成 实现思路 通过背景建模的方法,对源图像中的动态人物前景进行分割,再将目标图像作为背景,进行合成操作,获得一个可用的合成影像. 实现步骤如下. 使用BackgroundSubtractorMO ...

随机推荐

  1. 使用qemu-img创建虚拟磁盘文件

    # 安装qemu-img yum install -y qemu-img   # 获取帮助 qemu-img --help   # 支持的虚拟磁盘文件格式 Supported formats: vvf ...

  2. spring复杂数据类型传递

    1.VO对象与PO对象的区别: PO(persistant object) 持久对象:通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看成是与数据库中的表相映射的java对象.最简单的PO ...

  3. webpack打包多html开发案例新

    闲来无事在原来简单打包案例的基础上,参考vue-cli的打包代码,改为多文件打包. 区别于上篇文章<webpack打包多html开发案例>,此次打包根据开发的不同环节进行打包,也就是有开发 ...

  4. 解决java图形界面label中文乱码

    第一:在你的具有main函数的类也即你应用运行的主类上点击右键,选择Run As中的Run Configurations,如下图:java,awt,中文方框,中文乱码第二,在Arguments标签下的 ...

  5. [BinaryTree] 二叉树常考知识点

    1.二叉树第i层至多有2^(i-1)个结点(i>=1). 2.深度为k的二叉树上,至多含2^k-1个结点(k>=1) 3.n0 = n2 + 1(度) 4.满二叉树:深度为k且含有2^k- ...

  6. 【linux使用】bash shell命令行常用快捷键

    移动: Ctrl + A: 移动到当前编辑的命令行首, Ctrl + E: 移动到当前编辑的命令行尾, Ctrl + F 或 ->:按字符右移(往命令行尾部方向,前移) Ctrl + B 或 & ...

  7. Vue 定时执行函数

    var app = new Vue({ el: '#app', data: { count: , }, filters: { }, mounted: function () { this.$nextT ...

  8. 【Python】Python发展历史

    起源 Python的作者,Guido von Rossum,荷兰人.1982年,Guido从阿姆斯特丹大学获得了数学和计算机硕士学位.然而,尽管他算得上是一位数学家,但他更加享受计算机带来的乐趣.用他 ...

  9. 【51Nod1773】A国的贸易 FWT+快速幂

    题目描述 给出一个长度为 $2^n$ 的序列,编号从0开始.每次操作后,如果 $i$ 与 $j$ 的二进制表示只差一位则第 $i$ 个数会加上操作前的第 $j$ 个数.求 $t$ 次操作后序列中的每个 ...

  10. 【bzoj2351】[BeiJing2011]Matrix 二维Hash

    题目描述 给定一个M行N列的01矩阵,以及Q个A行B列的01矩阵,你需要求出这Q个矩阵哪些在原矩阵中出现过.所谓01矩阵,就是矩阵中所有元素不是0就是1. 输入 输入文件的第一行为M.N.A.B,参见 ...