视频水印嵌入

%%%%%%%%%视频水印嵌入%%%%%%%%%%%%%%%%
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]);

 代码没显示有错误,请问该怎么解决?

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值