用最简单的差分法实现了一下前景分割。使用的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. 【Leetcode】322. Coin Change

    You are given coins of different denominations and a total amount of money amount. Write a function ...

  2. windows平台下nginx+PHP环境安装

    因为日常工作在windows下,为方便在window是下进行PHP开发,需要在windows平台下搭建PHP开发环境,web服务器选择nginx,不过windows版本的nginx性能要比Linux/ ...

  3. Spring Cloud 之 Eureka

    Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能,服务 ...

  4. 在DbGrid中,不按下Ctrl,单击鼠标如何实现多选?谢谢

    解决方案 »   有了dbgrid1.options.dgmultiselect:=true;必须按下Ctrl键,才能实现多选, 修改源代码,把以下内容if Select and (ssShift i ...

  5. Vue使用,异步获取日期时间后格式成"/Date(1333245600000+0800)/" 转换成正常格式

    js从后台mvc中日期获取,结果格式成"/Date(1333245600000+0800)/"了,当然不能这样展显给用户了,要转换,方法如下: function data_stri ...

  6. CGLib动态代理引起的空指针异常

    一个同事将公司的开发框架基于最新的Spring.Tomcat.Java版本作了部分修改,拿来开发运行之后,发现一个奇怪的空指针异常. 还原一下当时的场景,代码大概如下,所有的Servlet继承自Bas ...

  7. BZOJ1996 HNOI2010合唱队(区间dp)

    设f[i][j][0/1]表示i~j这段区间上一次选择的是最左/最右人的方案数.转移显然. #include<iostream> #include<cstdio> #inclu ...

  8. [您有新的未分配科技点]博弈论入门:被博弈论支配的恐惧(Nim游戏,SG函数)

    今天初步学习了一下博弈论……感觉真的是好精妙啊……希望这篇博客可以帮助到和我一样刚学习博弈论的同学们. 博弈论,又被称为对策论,被用于考虑游戏中个体的预测行为和实际行为,并研究他们的应用策略.(其实这 ...

  9. [ZJOI2014]力 FFT

    题面 题解: \[F_j = \sum_{i < j}\frac{q_iq_j}{(i - j)^2} - \sum_{i > j}{\frac{q_iq_j}{(i - j)^2}}\] ...

  10. Codeforces Round #353 (Div. 2) A

    弱到只会写div2的A题... 题面: A. Infinite Sequence time limit per test 1 second memory limit per test 256 mega ...