资源简介
手持式摄像机在使用时常常会受到使用者有意无意抖动的影响,从而影响成像效果,造成录制视频的不稳定及跳动问题,尤其是在使用者在一场景中特写或者跟踪某一具体目标时,使用者通常不能准确定位到或者估计出运动目标的位置,从而造成目标在视频中位置的不稳定,造成视频的主观效果变得不理想。
为了解决这一问题,我们需要设计一种算法来识别这种无意义的运动并设法通过补偿的方式来使得场景中的目标物体保持位置稳定的状态。
手持式摄像机捕获的视频通常都会受到抖动的影响,这严重的影响视频的主观效果。
这里提出的算法可以可靠的用于数字视频的去抖动。这个算法通过识别这些意外的抖动并且利用运动补偿的方法来获得一个较好的视频输出。
这个系统可以分为三个模块:(1)运动估计模块;(2)抖动识别模块;(3)运动补偿模块。
代码片段和文件信息
function [mvf] = EMBA(R accuracySfNf)
% anchor frame : an_f; target frame : ta_f;
% predict frame : prd_f;
% motion vector MV mvx mvy;
% image size MxM; block size NxN; search range R;
% accuracy: integer pel:1 ; half pel:2
% estimate the motion vector by using integer pel EBMA
%% Get YUV(352 288 4:2:0) frame 0 1 Y component
N = 16;%16x16窗口大小
mov=aviread(‘counter_gravity‘Sf:1:Sf+Nf);%用于shaky proof
len=size(mov(1).cdata1);
w=size(mov(1).cdata2);
mvxf=zeros(len/Nw/NNf-1);
mvyf=zeros(len/Nw/NNf-1);
for index=1:Nf-1
ta_f=mov(index).cdata;
ta_f=ta_f(::1);
an_f=mov(index+1).cdata;
an_f=an_f(::1);
%%
% setting parameters
N = 16;
[len w] = size(an_f);
if (nargin < 1) R = N-1; end;
if (nargin < 2) accuracy = 1; end;
if (R > N-1) R = N-1; end;
start_range = [];
end_range = [];
% time estimation
% the extend target image for motion estimation
% prd_f = zeros(len w);
mvx = []; mvy = [];
if (accuracy > 1) ta_f = imresize(ta_f accuracy ‘bilinear‘); end;
% figure; imagesc(ta_f);
% title(‘target image‘);
% start to estimate motion vetors
for i=1:N:len-N+1
for j=1:N:w-N+1
MAD_min = 255*N*N;
for k=-R*accuracy:R*accuracy
start_range(1) = (i-1)*accuracy+1+k;
end_range(1) = (i-1)*accuracy+k+N*accuracy; % it should be (i-1)*accuracy+1+k+N*accuracy-1;
if (start_range(1) < 1) start_range(1) = 1; end_range(1) = N*accuracy; end;
if (end_range(1) > len*accuracy) end_range(1) = len*accuracy; start_range(1) = len*accuracy-N*accuracy+1; end;
for p=-R*accuracy:R*accuracy
start_range(2) = (j-1)*accuracy+1+p;
end_range(2) = (j-1)*accuracy+p+N*accuracy; % it should be (j-1)*accuracy+1+p+N*accuracy-1;
if (start_range(2) < 1) start_range(2) = 1; end_range(2) = N*accuracy; end;
if (end_range(2) > w*accuracy) end_range(2) = w*accuracy; start_range(2) = w*accuracy-N*accuracy+1; end;
MAD = sum(sum(abs(an_f(i:i+N-1 j:j+N-1)-...
ta_f(start_range(1):accuracy:end_range(1) start_range(2):accuracy:end_range(2)))));
if(MAD < MAD_min)
MAD_min = MAD; dy = start_range(1); dx = start_range(2);
end
end
end
prd_f(i:i+N-1 j:j+N-1) = ta_f(dy:accuracy:dy+N*accuracy-1...
dx:accuracy:dx+N*accuracy-1);
iblk = floor((i-1)/N)+1; jblk = floor((j-1)/N)+1;
mvx(iblk jblk) = dx/accuracy-j;
mvy(iblk jblk) = dy/accuracy-i;
mean_an_f=mean(mean(an_f(i:i+N-1 j:j+N-1)));
MBMAD(iblkjblk)= sum(sum(abs(an_f(i:i+N-1 j:j+N-1)-mean_an_f)))/N^2;
MVMAD(iblkjblk)=MAD_min;
end
end
mvxf(::index)=mvx;
mvyf(::index)=mvy;
madf(::index)=MBMAD;%宏块自身MAD
mvmad(::index)=MVMAD;%计算运动矢量时输出的MAD
end
mvf=struct(‘mvx‘mvxf‘mvy‘mvyf‘mad‘madf‘mvmad‘mvmad);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 160256 2010-05-27 21:47 SHAKE_PROOF\132orig.avi
文件 183808 2010-05-27 21:47 SHAKE_PROOF\132proof.avi
文件 182272 2010-05-27 21:41 SHAKE_PROOF\65orig.avi
文件 185856 2010-05-27 21:41 SHAKE_PROOF\65proof.avi
文件 1500872 2010-05-25 21:55 SHAKE_PROOF\counter_gravity.avi
文件 3001 2010-06-06 16:01 SHAKE_PROOF\EMBA.m
文件 1036 2010-06-06 16:02 SHAKE_PROOF\hist2d.m
文件 50003 2010-05-27 20:51 SHAKE_PROOF\mvf132+46fr7.mat
文件 67142 2010-05-27 21:46 SHAKE_PROOF\mvf132+46fr7mad.mat
文件 49647 2010-05-27 21:08 SHAKE_PROOF\mvf65+46fr7.mat
文件 68260 2010-05-27 21:26 SHAKE_PROOF\mvf65+46fr7mad.mat
文件 1936 2010-06-06 16:00 SHAKE_PROOF\shakeproof.m
文件 1130 2010-05-27 20:49 SHAKE_PROOF\splitmv.m
文件 166 2010-06-06 16:05 SHAKE_PROOF\introduction.txt
目录 0 2010-05-30 22:31 SHAKE_PROOF
----------- --------- ---------- ----- ----
2455385 15
- 上一篇:PC/SC 协议文档
- 下一篇:LDO低压差线性稳压器核心电路的设计.pdf
相关资源
- 加密视频破解.doc
- [算法设计与分析讲义-30讲]-中科院
- 屈婉玲老师算法设计与分析课件
- 全网VIP视频电影免费看片神器V4.3.40微
- CSP-J、CSP-S初赛知识点2_线性表、查找
- 基于QT4.8的视频播放器
- surf算法详解
- 传智播客IOS视频源码
- windows版基于nginx点播视频服务器rtmp
- 操作系统--多级反馈队列进程的控制算
- 稳定婚姻问题 算法分析
- RSA公钥密码算法的能量分析攻击与防
- 基于置乱加密的小波域数字图像水印
- 商品排序算法研究
- 电脑鼠转弯算法.pdf
- 九宫格源代码八数码算法VC实现.rar
- 基于方差和深度学习的脑电信号分类
- 蚁群算法.ppt蚁群算法.ppt
- 运筹学-第二版-(吴祁宗-著)-课后习
- 基于libevent的视频服务器源代码
- rsa算法流程图
- 迪杰斯特拉算法的动态实现
- ACM模板大全
- 算法集合道格拉斯、遗传算法、krig
- 基于OpenCV多目标的模板匹配算法
- SPH算法 流体仿真模拟 亲测可运行
- 连续投影算法
- 蓝桥杯官网练习题和测评数据-入门训
- 师生交流系统可实现视频的文件的
- 基于混合算法的推荐系统的研究与实
评论
共有 条评论