赞
踩
目录
- .......................................................................
- %对水印进行置乱
- Marks1s = Arnold(Marks1,1,0);
-
- figure(1)
- subplot(131);
- imshow(I0,[]);
- title('原始图像');
- subplot(132);
- imshow(Marks1,[]);
- title('水印');
- subplot(133);
- imshow(Marks1s,[]);
- title('置乱后水印');
- %对图像进行处理
- Mwk_1st = func_wk_insert(I0,Marks1s,Power,Blksize,RR,CC);
-
-
- if SEL == 1
- %噪声攻击
- noise0 = 20*randn(size(Mwk_1st));
- Mwk_1st = double(Mwk_1st) + noise0;
- end
- if SEL == 2
- %旋转攻击
- Mwk_1st = double(imrotate(Mwk_1st,0.1,'bilinear','crop'));
- end
- if SEL == 3
- %剪切攻击
- Mwk_1st(501:800,501:800) = 255*rand(300,300);
- end
- if SEL == 4
- %缩放攻击
- Mwk_1st = imresize(Mwk_1st,1/2);
- Mwk_1st = imresize(Mwk_1st,2);
- end
- if SEL == 5
- %去除行列攻击
- Mwk_1st(200,:) = 255*rand(1,1024);
- Mwk_1st(:,400) = 255*rand(1024,1);
- end
- if SEL == 6
- %模糊攻击
- G = fspecial('gaussian', [5 5], 0.5);
- Mwk_1st = imfilter(Mwk_1st,G,'same');
- end
- if SEL == 7
- %增强攻击
- Mwk_1st = double((1.2*Mwk_1st));
- end
-
-
- Msg1 = func_wk_desert(Mwk_1st,Blksize,RR,CC,4);
- %对水印进行逆置乱
- Msg1s = Arnold(uint8(255*Msg1),1,1);
-
- figure(2)
- subplot(221);
- imshow(I0,[]);
- title('原始图像');
- subplot(222);
- imshow(Marks1,[]);
- title('水印');
- subplot(223);
- imshow(Mwk_1st,[]);
- title('加入攻击的图像');
- subplot(224);
- imshow(Msg1s,[]);
- title('水印提取');
-
-
- %%
- %水印提取,计算NC和PSNR
- Marks1 = imresize(Marks1,[RR,CC]);
- NC(indx) = func_nc(uint8(Marks1),uint8(Msg1s));
- pause(1);
- end
-
- figure;
- plot(NC,'b-o');
- grid on
- xlabel('视频帧数');
- ylabel('比特率');
- axis([0,15,0.8*min(NC),1.1*max(NC)]);
-
- save R1.mat NC
- 011_005m
水印嵌入原理
LABS方法在这里不太明确,如果指的是色彩空间转换,可能是在嵌入或提取阶段将RGB图像转换至LAB色彩空间,因为LAB空间更适合人眼对颜色的感知,有利于隐藏水印而不易察觉。
水印提取原理:
将嵌入水印的图像再次进行二维CS-SCHT变换。
提取变换后的低频系数,并按照嵌入时的规则去除宿主图像内容的影响,恢复出水印信息 Wm′。
如果“LABS方法”涉及某种特定的解码策略,则在此步骤中可能会进一步应用相应的色彩空间处理和解码算法,以确保正确无误地还原水印信息。
OOOOO
OOO
O
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。