91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 422KB
    文件類型: .7z
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-17
  • 語言: Matlab
  • 標簽: matlab??魯棒水印??

資源簡介

基于DCT域的魯棒水印實現,有多種攻擊測試,魯棒性很好。

資源截圖

代碼片段和文件信息

%基于DTC域的魯棒水印實現
clear?all;
k=20;??%設置水印強度
blocksize=8;
midband=[00011110;
?????????00111100;
?????????01111000;
?????????11110000;
?????????11100000;
?????????11000000;
?????????10000000;
?????????00000000];
??message=double(imread(‘12.bmp‘));
??%Laplacian算子
??%h=[-1?-1?-1
???%??-1??8?-1
????%?-1?-1?-1];
??%G=abs(imfilter(Ih));
??%figureimshow(G[])title(‘Laplacian?Operator‘);
??%message=double(graythresh(I));%先轉換成灰色然后自動設置二值化的閥值并轉換成雙精度數組
??Mm=size(message1);
??Nm=size(message2);
??n=Mm*Nm;
??message=round(reshape(message1n));
??cover_object=double(imread(‘lena512.bmp‘));?
??Mc=size(cover_object1);????Nc=size(cover_object2);??
??c=Mc/8;d=Nc/8;m=c*d;
??%計算宿主圖像的每一塊方差
??xx=1;
??for?j=1:c
??????for?i=1:d
??????????pjhd(xx)=1/64*sum(sum(cover_object((1+(j-1)*8):j*8(1+(i-1)*8):i*8)));
??????????fc(xx)=1/64*sum(sum((cover_object((1+(j-1)*8):j*8(1+(i-1)*8):i*8)-?pjhd(xx)).^2));
???????????xx=xx+1;
??????end
??end
??A=sort(fc);B=A((c*d-n+1):c*d);
??%將水印信息嵌入到方差最大的前n塊
??fc_o=ones(1c*d);
??for?g=1:n
????for?h=1:c*d
???????if?B(g)==fc(h)
???????????fc_o(h)=message(g);
???????????h=c*d;
???????end
????end
??end
??message_vector=fc_o;
??watermarked_image=cover_object;
??%設置MATLAB隨機數生成器狀態J,作為系統秘鑰K
??rand(‘state‘7);
??%根據當前的隨機數生成器狀態J,生成0,1的偽隨機序列
??pn_sequence_zero=round(rand(1sum(sum(midband))));
??%嵌入水印
??x=1;y=1;
??for(kk=1:m)
??????%分塊DCT變換
??????dct_block=dct2(cover_object(y:y+blocksize-1x:x+blocksize-1));
??????%紋理大(方差最大的前n塊)并被標注水印信息為0的塊在其DCT中頻系數嵌入偽隨機序
??????ss=1;
??????if?(message_vector(kk)==0)
??????????for?ii=1:blocksize
??????????????for?jj=1:blocksize
????????????????if(midband(jjii)==1)
??????????????????dct_block(jjii)=dct_block(jjii)+k*pn_sequence_zero(ss);
??????????????????ss=ss+1;
????????????????end
??????????????end
??????????end
??????end
?????%分塊DCT反變換
??????watermarked_image(y:y+blocksize-1x:x+blocksize-1)=idct2(dct_block);
?????%換行
??????if(x+blocksize)>=Nc
????????x=1;y=y+blocksize;
??????else
????????x=x+blocksize;
??????end
??end?
???watermarked_image_int=uint8(watermarked_image);?%將其轉換成8為無符號整形數據
??%生成并輸出嵌入水印后的圖像
??imwrite(watermarked_image_int‘dct2_watermarked.bmp‘‘bmp‘);?%圖像數據寫入dct2中保存為bmp格式
?????%顯示峰值信噪比
???xsz=255*255*Mc*Nc/sum(sum((cover_object-watermarked_image).^2));
???psnr=10*log10(xsz);
??figure
??imshow(‘12.bmp‘);%水印圖像
??title(‘水印‘)
??figure
??imshow(‘lena512.bmp‘);%顯示原來圖像???
??title(‘原圖‘);
??figure
??imshow(watermarked_image_int[]);%顯示嵌入水印后的圖像??
??title(‘嵌入后圖像‘);
??%加椒鹽噪聲攻擊測試
?J1=imnoise(watermarked_image_int‘salt?&?pepper‘0.01);
?imwrite(J1‘JiaoYan.bmp‘‘bmp‘);
?figure
?imshow(J1[]);
?title(‘加椒鹽噪聲后的圖像‘);
?%對嵌入水印的圖像進行壓縮處理
?imwrite(watermarked_image_int‘JPEGyasuo.jpg‘‘jpeg‘‘quality‘40);
?J=imread(‘JPEGyasuo.jpg‘);
?figure
?imshow(J[]);
?title(‘壓縮后的水印圖像‘);
?%進行貼圖攻擊
watermarked_image_int(250:400300:500)=watermarked_image_int(209:359289:48

評論

共有 條評論