【信号隐藏】基于小波变换算法DWT实现水印嵌入提取matlab代码

1 简介

 

随着计算机网络的日益普及和通信技术的飞速发展,作为版权保护的有效手段,数字水印技术已成为多媒体信号处理领域的一个研究热点,也是信息安全技术领域的一个重要分支。而小波分析又称多分辨分析,是在傅立叶分析的基础上发展起来的新兴学科,具有深刻的理论意义和广泛的应用范围,是目前国际上科技界高度关注的前沿领域。本文以静止图像为研究对象,首先详细分析总结了数字水印技术的特点、分类及一般模型,对目前典型的数字图像水印算法进行了归纳和探讨,深入研究了小波理论及小波域的数字水印实现技术,接着将Hilbert扫描、人类视觉模型和混沌加密技术引入到数字水印技术中来,提出了几种比较有效的基于小波变换的数字水印算法: 本文所提到的算法及实验都是在 MATLAB环境下进行的,所有实验结果表明:本文提出的算法能够经受住噪声、滤波、图像压缩、剪切、旋转等常见的图像处理,具有较强的鲁棒性和不可见性。

2 部分代码

clc;clear;close all;
% 水印提取程序

% 读取原始音频信号3.wav存到变量A中
[A,fs,nbits] = wavread('3.wav');
% 读取含水印的音频信号test.wav存到变量T中
[T,fs,nbits] = wavread('test.wav');
% 用变量L存储音频A的长度
L = size(A);
% 读取图像h.bmp存入变量M做水印信号。
M = imread('h.bmp');
% 将图像h.bmp转化为二值图并存入变量BW
BW = im2bw(M);
subplot(121); imshow(BW);title('原始的水印');
% 计算水印矩阵大小
% 计算BW的长度
[r,c] = size(BW);
M1 = r; M2 = c;
N = 10; 

% M12为中间变量,避免每次都计算M1*M2
M12 = M1*M2; 
n = M12*2;
length = n*10;
% 将原始音频信号分解为Ae和Ar两部分
i = 1 : length; 
j = [1];
% 取矩阵A的l到length行构建矩阵Ae
Ae = A(i,j);
% 取矩阵T的l到length行构建矩阵Te
Te = T(i,j);
i = length+1 : L;
% 取矩阵A、T的length到L行第一列构建矩阵Ar、Tr
Ar = A(i,j);
Tr = T(i,j);


% 建立元胞B,每个音频数据段Ae(m)是B的一个元素
k = 1;
% 建立M1 x M2行l列的元胞
B = cell(n,1);
Bt = cell(n,1);
th = n*N;
% 当k小于Ae的长度时,矩阵Ae每10行作为一个音频数据段存入元胞B中
while ( k < th )
   i = k : k+9;
   m = (k+9)/10;
   B{m,1} = Ae(i,j);
   Bt{m,1} = Te(i,j);
   k = k+10;
end


% 建立元胞D
D = cell(n,1);
Dt = cell(n,1);
for i = 1 : n
   % 将元胞B中离散余弦变换了的元素存入元胞D中
   D{i,1} = dct(B{i,1});
   Dt{i,1} = dct(Bt{i,1});
end

% 建立一维序列C,用于储存提取的水印信息
C = zeros(1,n);
for i = 1 : n
   th1 = abs(Dt{i,1}(3)/D{i,1}(3));
   if th1 < 2.0
       C(i) = 0;
   else C(i) = 1;
   end
end


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 对水印信号进行解扩频处理
% 扩频系数为2
M = zeros(n,1);
% 产生与嵌入式相同的密钥序列M
for k = 1 : n
   if mod(k,4) == 0
       M(k) = 1;
   else 
       M(k) = 0;
   end
   % 提取出来的水印信号序列分别按位与密钥异或
   l = ceil(k/2);
   S(l) = bitxor(C(k),M(k));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 对水印信息进行升维,构建二维图像
for j = 1 : M2
   for i = 1 : M1
       n = (j-1)*M1+i;
       Im(i,j) = S(n);
   end
end

subplot(122);imshow(Im);title('提取的水印');

3 仿真结果

4 参考文献

[1]盛潭. 基于小波变换的数字水印的研究与实现[D]. 天津科技大学, 2012.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab科研辅导帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值