在一些随机的位置嵌入噪声帧
嵌入噪声帧:
%在一些特定的位置删除一些噪声帧。%由混沌序列控制加入帧所在位置,并由其控制删除位置。%程序开发: lilizong@gmail.com%2013-9-19clc;clear all;aviobj=avifile('myAVI\myRemoveFrame');aviobj.Quality=100;aviobj.compression='None';mov=mmreader('aviVideo\myAddFrame.avi'); %用mmreader读入视频文件 50帧mySize=read(mov,1);[m n]=size(mySize);nShort=n/3; %彩色图像的其中一帧%%%%%%%产生混沌序列,用于控制位置location=linspace(0,0,mov.numberofframes);loc=location;location(1)=0.98;for i=2:mov.numberofframes location(i)=1-2*location(i-1)*location(i-1);endfor i=1:mov.numberofframes loc(i)=mod(location(i)*10000,20)+20; %产生[20 40]之间的随机数,帧数在这个范围内endloc=uint8(loc); %如果不转换只能嵌入一个,整数不能等于小数。%%%%%%%产生混沌序列,用于控制位置%%%%%%%%%%嵌入,%flag1用于控制当前嵌入的帧数在原有视频内的位置。%flag2用来保存当前总共嵌入的帧数%flag3用来保持当前嵌入帧,与上一个嵌入帧之间的距离,由loc决定%% flag1=0;flag2=1;flag3=0;for i=1:mov.numberofframes% flag1=i-flag2+1; flag3=flag3+1; if flag3==loc(flag2) flag2=flag2+1; flag3=0; else b=read(mov,i); aviobj=addframe(aviobj,b); endend%flag3用来保持当前嵌入帧,与上一个嵌入帧之间的距离,由loc决定aviobj=close(aviobj);mplay('myAVI\myRemoveFrame.avi');