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

資源簡介

DCT、DWT數字水印技術,內含matlab代碼,可一鍵運行。直接生成數字水印并進行相關攻擊操作。

資源截圖

代碼片段和文件信息

clear;
clc;

disp(‘請選擇載體圖像:‘);
[filename2?pathname2]?=?uigetfile(‘*.jpg‘?‘讀取圖片文件‘);
pathfile2=fullfile(pathname2?filename2);
image=imread(pathfile2);?
disp(‘請選擇水印圖像:‘);
[filename?pathname]?=?uigetfile(‘*.jpg‘?‘讀取圖片文件‘);
pathfile=fullfile(pathname?filename);
markbefore=imread(pathfile);?

markbefore2=rgb2gray(markbefore);
mark=im2bw(markbefore2);????%使水印圖像變為二值圖
figure(1);??????%打開窗口
subplot(231);????%該窗口內的圖像可以有兩行三列
imshow(mark)title(‘水印圖像‘);???%顯示水印圖像
marksize=size(mark);???%計算水印圖像的長寬
rm=marksize(1);??????%rm為水印圖像的行數
cm=marksize(2);?????%cm為水印圖像的列數

I=mark;
alpha=30;?????%尺度因子控制水印添加的強度決定了頻域系數被修改的幅度
k1=randn(18);??%產生兩個不同的隨機序列
k2=randn(18);
subplot(232)imshow(image[])title(‘載體圖像‘);?%[]表示顯示時灰度范圍為image上的灰度最小值到最大值
yuv=rgb2ycbcr(image);???%將RGB模式的原圖變成YUV模式
Y=yuv(::1);????%分別獲取三層,該層為灰度層
U=yuv(::2);??????%因為人對亮度的敏感度大于對色彩的敏感度,因此水印嵌在色彩層上
V=yuv(::3);
[rm2cm2]=size(U);???%新建一個和載體圖像色彩層大小相同的矩陣
before=blkproc(U[8?8]‘dct2‘);???%將載體圖像的灰度層分為8×8的小塊,每一塊內做二維DCT變換,結果記入矩陣before

after=before;???%初始化載入水印的結果矩陣
for?i=1:rm??????????%在中頻段嵌入水印
????for?j=1:cm
????????x=(i-1)*8;
????????y=(j-1)*8;
????????if?mark(ij)==1
????????????k=k1;
????????else
????????????k=k2;
????????end
????????after(x+1y+8)=before(x+1y+8)+alpha*k(1);
????????after(x+2y+7)=before(x+2y+7)+alpha*k(2);
????????after(x+3y+6)=before(x+3y+6)+alpha*k(3);
????????after(x+4y+5)=before(x+4y+5)+alpha*k(4);
????????after(x+5y+4)=before(x+5y+4)+alpha*k(5);
????????after(x+6y+3)=before(x+6y+3)+alpha*k(6);
????????after(x+7y+2)=before(x+7y+2)+alpha*k(7);
????????after(x+8y+1)=before(x+8y+1)+alpha*k(8);
????end
end
result=blkproc(after[8?8]‘idct2‘);????%將經處理的圖像分為8×8的小塊,每一塊內做二維DCT逆變換
yuv_after=cat(3YresultV);??????%將經處理的色彩層和兩個未處理的層合成
rgb=ycbcr2rgb(yuv_after);????%使YUV圖像變回RGB圖像
imwrite(rgb‘markresule.jpg‘‘jpg‘);??????%存儲添加水印后的圖像
subplot(233)imshow(rgb[])title(‘嵌入水印的圖像‘);????%顯示添加水印后的圖像

%攻擊圖像,測試其魯棒性
disp(‘請選擇對圖像的攻擊方式:‘);
disp(‘1.添加白噪聲‘);
disp(‘2.對圖像進行部分剪切‘);
disp(‘3.將圖像旋轉十度‘);
disp(‘4.將圖像壓縮處理‘);
disp(‘5.不處理圖像,直接顯示提取水印‘);
disp(‘輸入其它數字則直接顯示提取水印‘);
choice=input(‘請輸入選擇:‘);
figure(1);
switch?choice????????%讀入輸入的選擇??withmark為等待提取水印的圖像
case?1
result_1=rgb;
noise=10*randn(size(result_1));????%生成隨機白噪聲
result_1=double(result_1)+noise;????????%添加白噪聲
withmark=uint8(result_1);
subplot(234);
imshow(withmark[]);
title(‘加入白噪聲后的圖像‘);?????%顯示加了白噪聲的圖像
case?2
result_2=rgb;
A=result_2(::1);
B=result_2(::2);
C=result_2(::3);
A(1:641:400)=512;???%使圖像上方被剪裁
B(1:641:400)=512;???%分別對三個圖層操作
C(1:641:400)=512;?
result_2=cat(3ABC);
subplot(234);
imshow(result_2);
title(‘上方剪切后圖像‘);
figure(1);
withmark=result_2;
case?3
result_3=imrotate(rgb10‘bilinear‘‘crop‘);???%最鄰近線性插值算法旋轉10度
subplot(234);
imshow(result_3);
title(‘旋轉10度后圖像‘);
withmark=result_3;
case?4
[cA1cH1cV1cD1]=dwt2(rgb‘Haar‘);????%通過小波變換對圖像進行壓縮
cA1=HYASUO(cA1);
cH1=HYASUO(cH1);
cV1=HYASUO(cV1);
cD1=HYASUO(cD1);

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-01-17?09:08??DCT\
?????文件???????75334??2018-12-02?20:37??DCT\b.jpg
?????文件????????5103??2018-12-04?11:21??DCT\MAIN.m
?????文件????????2663??2018-12-03?20:07??DCT\watermark.jpg
?????目錄???????????0??2019-01-17?09:08??DWT\
?????文件???????55518??2018-12-02?20:37??DWT\a.jpg
?????文件????????3417??2018-12-03?22:57??DWT\main1.m
?????文件????????2663??2018-12-03?20:07??DWT\watermark.jpg
?????目錄???????????0??2019-01-17?09:08??盲水印嵌入提取\
?????文件????????1172??2013-03-16?19:05??盲水印嵌入提取\blind_emb.m
?????文件?????????626??2013-03-16?18:50??盲水印嵌入提取\blind_extraction.m
?????文件?????????469??2013-03-16?18:46??盲水印嵌入提取\CQ.m
?????文件?????????183??2013-03-16?18:49??盲水印嵌入提取\fil_code.m
?????文件????????1300??2013-03-16?18:47??盲水印嵌入提取\jpeg_extraction.m
?????文件???????66616??2007-07-04?16:54??盲水印嵌入提取\lena.bmp
?????文件???????12342??2011-07-09?17:23??盲水印嵌入提取\mark.bmp
?????文件????????1027??2013-03-16?19:11??盲水印嵌入提取\mul_emb.m
?????文件????????1294??2013-03-16?18:49??盲水印嵌入提取\mul_extration.m
?????文件?????????453??2013-03-16?18:46??盲水印嵌入提取\PSNR.m

評論

共有 條評論