资源简介
利用二维小波变换,在一幅图像中嵌入水印,有水印检测以及提取的源代码,并有各部分程序作用的注释。
代码片段和文件信息
clear;
%装入原图像1
load woman;
I=X;
%小波函数
type = ‘db1‘;
% 2维离散Daubechies小波变换
[CA1 CH1 CV1 CD1] = dwt2(Itype);
C1 = [CH1 CV1 CD1];
%系数矩阵大小
[length1 width1] = size(CA1);
[M1 N1] = size(C1);
% 定义阈值T1
T1 =50;
alpha = 0.2;
%在图像中加入水印
for counter2 = 1: 1: N1
for counter1 = 1: 1: M1
if( C1(counter1 counter2) > T1 )
marked1(counter1counter2) = randn(11);
NEWC1(counter1 counter2) = double( C1(counter1 counter2) ) +alpha * abs( double( C1(counter1 counter2) ) ) * marked1(counter1counter2) ;
else
marked1(counter1 counter2) = 0;
NEWC1(counter1 counter2) = double( C1(counter1 counter2) );
end;
end;
end;
%重构图像
NEWCH1 = NEWC1(1:length1 1:width1);
NEWCV1 = NEWC1(1:length1 width1+1:2*width1);
NEWCD1 = NEWC1(1:length1 2*width1+1:3*width1);
R1 = double( idwt2(CA1 NEWCH1 NEWCV1 NEWCD1 type) );
%分离水印
watermark1 = double(R1) - double(I);
figure(1);
subplot(121);
image(I);
axis(‘square‘);
title(‘原始图像‘);
subplot(122);
imshow(R1/250);
axis(‘square‘);
title(‘Daubechies小波变换后图像‘);
figure(2);
imshow(watermark1*10^16);
axis(‘square‘);
title(‘水印图像‘);
% 水印检测
newmarked1 = reshape(marked1 M1*N1 1);
% 检测阈值
T2 = 60;
for counter2 = 1: 1: N1
for counter1 = 1: 1: M1
if( NEWC1(counter1 counter2) >T2 )
NEWC1X(counter1 counter2) = NEWC1(counter1 counter2);
else
NEWC1X(counter1 counter2) = 0;
end;
end;
end;
NEWC1X = reshape(NEWC1X M1*N1 1);
correlation1 = zeros(10001);
for corrcounter = 1: 1: 1000
if( corrcounter == 500)
correlation1(corrcounter1) = NEWC1X‘*newmarked1 / (M1*N1);
else
rnmark = randn(M1*N11);
correlation1(corrcounter1) = NEWC1X‘*rnmark / (M1*N1);
end;
end;
% 计算阈值
originalthreshold = 0;
for counter2 = 1: 1: N1
for counter1 = 1: 1: M1
if( NEWC1(counter1 counter2) > T2 )
originalthreshold = originalthreshold + abs( NEWC1(counter1 counter2) );
end;
end;
end;
originalthreshold = originalthreshold * alpha / (2*M1*N1);
corrcounter = 1000;
originalthresholdvector = ones(corrcounter1) * originalthreshold;
figure(3);
plot(correlation1 ‘-‘);
hold on;
plot(originalthresholdvector ‘--‘);
title(‘原始的加水印图像‘);
xlabel(‘水印‘);
ylabel(‘检测响应‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2538 2008-12-23 19:57 shuiyin2.m
----------- --------- ---------- ----- ----
2538 1
- 上一篇:madplay库文件
- 下一篇:VHDL源代码
相关资源
- 音频数字水印SVD_DWTAudioMark
- 基于区域的分裂合并图像分割方法
- lena256*256灰度图像
- 计算图像之间的偏差指数
- 基于FPGA和GigE Vision的图像采集系统_徐
- 基于harris角点特征的图像配准程序
- OpenCV截取图像的任意区域(ROI)规则
- AMCap 摄像头软件 无水印
- 数字水印技术 英文文献
- Landsat8预处理(辐射定标、图像裁剪)
- 调用deeplabv3的pb文件对大幅图像进行检
- 基于STM32图像采集程序
- 图像融合评价指标源码
- 图像压缩编码
- 基于FPGA的数字图像处理原理及应用程
- 稀疏分解图像重建程序,把图像分解
- 新型的图像分割方法综述
- 改进YOLO_V3遥感图像飞机识别应用_郑志
- 数字音频水印_源代码
- 基于区域内一致性和区域间差异性的
- 静态图像目标分割算法
- 对图像傅里叶变换,DCT变换及重构并
- LABVIEW 相机曝光参数修改
- 数字水印嵌入和提取算法
- 基于Harris多角度角点检测的图像匹配
- 基于小波变换的图像纹理特征提取方
- 深度学习 脑部图像分割
- 基于VHDL语言的VGA图像显示程序及其工
- bmp转jpeg源码
- 数字图像处理大作业————各种图
评论
共有 条评论