%%%%%%%%%视频水印嵌入%%%%%%%%%%%%%%%%
clc
clear all;
blank=10;
w1=imread('banana.jpg');
[m1,n1]=size(w1);
W=reshape(w1,[1,m1*n1]);
water_num=length(W);
index=randperm(m1*n1);
save ind index;
R_W=W(index);
[mov,imgRgb]=loadFileYuv('akiyo_qcif.yuv',352,288,[1:16]);
w_mov=mov;
yuv_legth=size(mov,2);
w_f_size=floor(yuv_length/4);
index2=randperm(length(mov));
index3=index2([1,w_f_size]);
index4=sort(index3);
save index_f index4;
G=zeros(1,yuv_length);
n_c=zeros(1,w_f_size);
ps=zeros(1,w_f_size);
time=cputime;
for ii=1,w_f_size
frame=mov(index4(ii));
fo=frame.cdata;
fyuv=rgb2ycbcr(fo);
f=fyuv(:,:,1);
f=double(f);
[m,n]=size(f);
dc_num=m*n/16;
for i=0:4:m-4
for j= 0:4:n-4
fd(i+1:i+4,j+1:j+4)=dct2(f(i+1:i+4,j+1:j+4));
end
end
fdc_coef=zreos(m,n);
for i=1:4:m-3
for j=1:4:n-3
fdc_coef(i,j)=fd(i,j);
end
end
t=find(fdc_coef~=0);
for i=1:dc_num
fdc_coef1(i)=fdc_coef(t(i));
end
for i=0:4:dc_num-3
one_dct(i+1:i+4)=dct(fdc_coef1(i+1:i+4));
end
f_dct=reshape(one_dct,[4,dc_num/4]);
for j=1:dc_num/4
s(j)=abs(f_dct(3,j))+abs(f_dct(4,j));
end
[s_ii,index1]=sort(s,'ascend');
s_i=s_ii(1:water_num);
index=index1(1:water_num);
G(ii)=s_i(water_num);
for p=1:dc_unm/4
if (s_ii(p)>G(ii)&s_ii(p)<(G(1i)+blank))
a=f_dct(3,index1(p));
b=f_dct(4,index1(p));
f_dct(3,index1(p))=a/s_ii(p)*(G(n)+blank);
f_dct(4,index1(p))=b/s_ii(p)*(G(ii)+blank);
end
end
for j=1:dc_num/4
s(j)=abs(f_dct(3,j))+abs(f_dct(4,j));
end
tt=find(s<(G(ii)+blank/2));
for i=1:water_num
diff(i)=f_dct(3,tt(i))-f_dct(4,tt(i));
if abs(f_dcr(3,tt(i)))+abs(f_dct(4,tt(i)))<10
dif=6;
else
dif=10;
end
if R_W(i)==1
if diff(i)<dif
if diff(i)<0
f_dct(3,tt(i))=f_dct(3,tt(i))+abs(diff(i))+dif/2;
f_dct(4,tt(i))=f_dct(4,tt(i))-abs(diff(i))+dif/2;
else
f_dct(3,tt(i))=f_dct(3,tt(i))+(dif-abs(diff(i)))/2;
f_dct(4,tt(i))=f_dct(4,tt(i))-(dif-abs(diff(i)))/2;
end
else
f_dct(3,tt(i))=f_dct(3,tt(i));
f_dct(4,tt(i))=f_dct(4,tt(i));
end
end
if diff(i)>(-dif)
if dif(i)>0
f_dct(3,tt(i))=f_dct(3,tt(i))-(abs(diff(i))+dif)/2;
f_dct(4,tt(i))=f_dct(4,tt(i))+(abs(diff(i))+dif)/2;
else
f_dct(3,tt(i))=f_dct(3,tt(i))-(dif-abs(diff(i)))/2;
f_dct(4,tt(i))=f_dct(4,tt(i))+(dif-abs(diff(i)))/2;
end
else
f_dct(3,tt(i))= f_dct(3,tt(i));
f_dct(4,tt(i))= f_dct(4,tt(i));
end
end
fdct=reshape(f_dct,[1,dc_num]);
for i=0:4:dc_num-3
E_dc(i+1,i+4)=idct(fdct(i+1:i+4));
end
for i=1:dc_num
fd(t(i))=E_dc(i);
end
for i=0:4:m-4
for j=0:4:n-4
fw(i+1:i+4,j+1:j+4)=idct2(fd(i+1:i+4,j+1:j+4));
end
end
ps(ii)=psnrr(f,fw);
fyuv(:,:,1)=fw;
f_wimage=ycbcr2rgb(fyuv);
w_mov(index4(ii)).cdata=f_wimage;
n_c(ii)=nc(f_wimage,fo);
waitbar(ii/w_f_size);
end
e=cputime-time;
mplay(w_mov);
save water_mov w_mov;
ps;
n_c
出现以下错误: 文件: loadFileYuv.m 行: 12 列: 5
表达式无效。请检查缺失的乘法运算符、缺失或不对称的分隔符或者其他语法错误。要构造矩阵,请使用方括号而不是圆括号。
出错 shipinshuiyin (line 13)
[mov,imgRgb]=loadFileYuv('akiyo_qcif.yuv',352,288,[1:16]);
代码没显示有错误,请问该怎么解决?