在一些随机的位置嵌入噪声帧

网友投稿 546 2022-11-07

在一些随机的位置嵌入噪声帧

在一些随机的位置嵌入噪声帧

嵌入噪声帧:

%在一些特定的位置添加一些噪声帧。%由混沌序列控制加入帧所在位置,并由其控制删除位置。%这里用的是随机噪声,可以使用自定义形式的图片等。%程序开发: lilizong@gmail.com%2013-9-19clc;clear all;aviobj=avifile('aviVideo\myAddFrame');aviobj.Quality=100;aviobj.compression='None';mov=mmreader('aviVideo\vipfly.avi'); %用mmreader读入视频文件 50帧mySize=read(mov,1);[m n]=size(mySize);nShort=n/3; %彩色图像的其中一帧%%%%%%%产生混沌序列,用于产生噪声帧%产生第1个混沌序列l=linspace(0,0,m*nShort);l(1)=0.98;for i=2:m*nShort l(i)=1-2*l(i-1)*l(i-1);end%转为二进制只包含0和1for i=1:m*nShort if l(i)>0 l(i)=1; else l(i)=0; endendcs1=reshape(l,m,nShort);%chaotic system1%产生第2个混沌序列l(1)=0.99;for i=2:m*nShort l(i)=1-2*l(i-1)*l(i-1);end%转为二进制只包含0和1for i=1:m*nShort if l(i)>0 l(i)=1; else l(i)=0; endendcs2=reshape(l,m,nShort);%chaotic system2%产生第3个混沌序列l(1)=0.92;for i=2:m*nShort l(i)=1-2*l(i-1)*l(i-1);end%转为二进制只包含0和1for i=1:m*nShort if l(i)>0 l(i)=1; else l(i)=0; endendcs3=reshape(l,m,nShort); %chaotic system3cs(:,:,1)=cs1;cs(:,:,2)=cs2;cs(:,:,3)=cs3;%%%%%%%产生混沌序列,用于产生噪声帧%%%%%%%产生混沌序列,用于控制位置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;% flag4=mov.numberofframes; %需要遍历的次数,随着嵌入帧数的增加而增加% test=mov.numberofframes; 开始使用for i=1:flag4,不可以,for不支持变量%或者在 if flag3==loc(flag2)内添加i=i-1for i=1:100000 flag1=i-flag2+1; flag3=flag3+1; if flag3==loc(flag2) flag2=flag2+1; flag3=0;% flag4=flag4+1 aviobj=addframe(aviobj,cs); else if flag1>mov.numberofframes break; else b=read(mov,flag1); end aviobj=addframe(aviobj,b); endend%flag3用来保持当前嵌入帧,与上一个嵌入帧之间的距离,由loc决定aviobj=close(aviobj);mplay('aviVideo\myAddFrame.avi');

剔除噪声帧:

%在一些特定的位置删除一些噪声帧。%由混沌序列控制加入帧所在位置,并由其控制删除位置。%程序开发: 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');

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:云原生
下一篇:pyhont中mahotas包的使用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~