背景建模是从拍摄的视频中分离出背景和前景。

由于背景的视频基本是不变的,所以如果把每帧当做一个矩阵的一列那么,矩阵是低秩的,所以低秩矩阵的恢复来恢复出背景。

今天主要完成了,在自己的数据库让进行背景和前景的分离。下面为主要步骤:

1.从马毅的实验室网址下载RPCA求解的代码http://perception.csl.illinois.edu/matrix-rank/introduction.html

2.给出的接口是[A_hat E_hat iter] = inexact_alm_rpca(D, lambda, tol, maxIter)

所以明确目标:D是我们的视频中的每一帧,A_hat 是我们估计的背景,E_hat是前景。

RPCA解决的问题是

clc;

clear;

%% this to read avi by using mmread to get every frame

video = VideoReader('E:\FFOutput\test.avi');

nFrames = video.NumberOfFrames;   %得到帧数

H = video.Height;     %得到高度

W = video.Width;      %得到宽度

Rate = video.FrameRate;

Cal_FrameN=300;

% Preallocate movie structure.

mov(1:Cal_FrameN) = struct('cdata',zeros(H,W,3,'uint8'),'colormap',[]);

%read one frame every time

for i = 1:Cal_FrameN

mov(i).cdata = read(video,i);

P = mov(i).cdata;

double_P=im2double(P);

%imshow( double_P),title('原始图片3');

Frame=rgb2gray( double_P);%当前灰度帧

%下采样

Down_Frame=Frame(2:4:H,2:4:W);

M(:, i) = Down_Frame(:);

%  disp('当前播帧数:'),disp(i);

% imshow(P),title('原始图片');

%     P2=rgb2gray(P);

end

[A_hat, E_hat, iter]=inexact_alm_rpca(M,0.006);

A=reshape(A_hat(:,200), size(Down_Frame));

E=reshape(E_hat(:,200), size(Down_Frame));

D_real=reshape(M(:,200), size(Down_Frame));

figure;

imshow(D_real),title('原始图片');

figure;

imshow(A),title('恢复图片');

figure;

imshow(abs(E)),title('错误图片');

因为是MATLAB的初学者所以遇到了两个问题:

A.必须对读取的图像做double_P=im2double(P);处理不然会出现

错误使用  *

MTIMES 不完全支持整数类。至少有一个输入必须为标量。

要按元素进行 TIMES 计算,请改用 TIMES (.*)。

出错 lanbpro (line 298)

r = At*U(:,1);

出错 lansvd (line 209)

[U,B,V,p,ierr,w] = lanbpro(A,j,p,options,U,B,V,anorm);

出错 inexact_alm_rpca (line 53)

norm_two = lansvd(Y, 1, 'L');

出错 background (line 36)

[A_hat, E_hat, iter]=inexact_alm_rpca(M,0.006);

B在显示错误图片时需要做abs绝对值处理,不然是全黑的图片,不能看到前景图像。

C.最后一个也非常重要lumada值为1/(根号m).m为一张图片像素点的个数

D还有一个问题就是原图片很到,直接做会有内存不够的问题,所以进行了下采样。

实验结果:

=

+

低秩矩阵的应用matlab,低秩矩阵的应用相关推荐

  1. matlab 求取矩阵中值,matlab中取矩阵中指定列的值组成新矩阵

    matlab 矩阵中怎么加入冒号,比如我想矩阵A的第一列都为"1:" A(:,1)='1:';再问:不行的再答:用结构矩阵或者单元矩阵试试吧. 诚教:matlab中取矩阵的其中几行 ...

  2. matlab 矩阵角标,MATLAB中的矩阵索引

    MATLAB中的矩阵索引 作者:SteveEddins and Loren Shure   译:王茂春 利用矩阵的索引取出原矩阵的子集元素是一种有效的方式.MATLAB的多种索引类型不仅强大.灵活,而 ...

  3. matlab44矩阵,如何在MATLAB中将2X2矩阵转换为4X4矩阵?

    我需要通过以下方式将2X2矩阵转换为4X4矩阵的一些帮助: A = [2 6; 8 4] 应该变成: B = [2 2 6 6; 2 2 6 6; 8 8 4 4; 8 8 4 4] 我该怎么做? 在 ...

  4. matlab矩阵变成行向量,matlab中将一个矩阵按照行拼成一个行向量应该怎么输?

    %by dynamic %see also http://www.matlabsky.com %contact me matlabsky@gmail.com %2009.2. % 按行优先排列成行向量 ...

  5. matlab 矩阵3d显示,Matlab 3D视图矩阵

    让A是MATLAB的4×4视图矩阵,从视图函数获得: A = view; A(1:3,1:3)应对应于旋转和缩放, A(1:3,4)应对应翻译, A(4,:)应该是[0 0 0 1]. 将相机参数设置 ...

  6. matlab里矩阵相除,Matlab中的矩阵除法有问题???

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 x=rand(5) x = 0.5470    0.1835    0.9294    0.3063    0.6443 0.2963    0.3685 ...

  7. matlab如何矩阵相除,Matlab中的矩阵除法有问题???

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 x=rand(5) x = 0.5470    0.1835    0.9294    0.3063    0.6443 0.2963    0.3685 ...

  8. matlab 矩阵除法计算,Matlab中的矩阵除法有问题???

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 x=rand(5) x = 0.5470    0.1835    0.9294    0.3063    0.6443 0.2963    0.3685 ...

  9. MATLAB 一二三维矩阵之间转换

    MATLAB 一二三维矩阵之间转换 MATLAB 一二三维矩阵之间转换 低维转高维 高维转低维 前言:今天总结一下MATLAB一二三矩阵或数组之间的转换. 低维转高维   使用reshape函数,执行 ...

  10. matlab 矩阵 列 逆序,matlab对矩阵/向量的常用操作(拼接矩阵、向量逆序、改变矩阵形状、求行阶梯形矩阵、提取矩阵的一部分等)...

    几乎所有变量在matlab中都可以视为矩阵(1 x 1元素,1 x n向量,m x n矩阵等),matlab中对矩阵/向量的操作非常多,个人认为对矩阵的操作是体现matlab功底的地方:灵活搭配使用这 ...

最新文章

  1. java.lang.Instrument 动态修改替换类代码
  2. 华为mate40pro更新鸿蒙时间,确认入网!鸿蒙系统将首发mate40Pro4G版,华为旧旗舰也迎来升级...
  3. php mysql事务处理回滚操作
  4. excel 如何用vba将某一条记录移动到另一张工作表中_EXCEL常用快捷键
  5. centos 重启网卡_CentOS6 网络管理之网卡配置及简单路由设置
  6. JAVA入门级教学之(浮点型数据类型)
  7. Yarn 监控 - 监控任务运行状态 (包括Spark,MR 所有在Yarn中运行的任务)
  8. 斗地主AI算法——第十一章の被动出牌(5)
  9. 【LeetCode】剑指 Offer 45. 把数组排成最小的数
  10. Cilium提供并透明地保护应用程序工作负载之间的网络连接和负载平衡:什么是eBPF和XDP?
  11. 停滞数年后,ElasticJob 携首个 Apache 版本 3.0.0-alpha 回归!
  12. paip.提升用户体验-------在C++ Builder 中为Form窗体添加背景图片
  13. Activiti6--入门学习--监听器
  14. Pearson相关系数, Spearman相关系数,Kendall相关系数的区别
  15. 两个域名指向同一服务器的非80端口
  16. python项目-Python 的练手项目有哪些值得推荐?
  17. make_blobs方法的使用
  18. AHRS和INS的区别
  19. 销售凭证、客户主数据相关表
  20. 9月20日.周日 第一场正式的比赛:2020年CCPC网络赛

热门文章

  1. uniapp之安卓文件操作插件
  2. 李笑来《财富自由之路》思维导图
  3. android灰度发布平台,安卓版微信灰度发布购物直播功能 小程序直播上线公域流量入口...
  4. 英语口语360之每日二十个英语单词
  5. 方差分析ANOVA、单因素方差分析、协变量方差分析ANCOVA、重复测量方差分析、双因素方差分析( two-way ANOVA)、多元方差分析MANOVA、多元协方差分析MANCOVA
  6. windows 安全删除硬件并弹出媒体 选项灰色、无法弹出
  7. 金盾播放器android安卓,(金盾高级视频加密系统跨平台播放器Android安卓安装步骤.doc...
  8. 加拿大 生物工程计算机最好的学校,加拿大哪些大学有生物工程本科专业?这五大院校是理科与工科的完美结合!...
  9. 详细解LeetCode 1284. Minimum Number of Flips to Convert Binary Matrix to Zero Matrix
  10. 仪器仪表的标定、检定、校准、校验的区别【图文详解】