有关Matlab中从三级小波域内提取水印遇到的问题,提取出的水印啥都没有,嵌入过程则没有问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有关Matlab中从三级小波域内提取水印遇到的问题,提取出的水印啥都没有,嵌入过程则没有问题。相关的知识,希望对你有一定的参考价值。

以下是水印提取代码:
clear all;
% save start timestart_time=cputime;
% read in the watermarked objectfile_name='dwt_watermarked.bmp';
watermarked_image=double(imread(file_name));
% determine size of watermarked imageMw=size(watermarked_image,1); %Height
Nw=size(watermarked_image,2); %Width
% read in original watermarkfile_name='1(1).bmp';
orig_watermark=double(imread(file_name));
% determine size of original watermarkMo=size(orig_watermark,1); %Height
No=size(orig_watermark,2); %Width
% read in key for PN generatorfile_name='_key.bmp';
key=double(imread(file_name))./256;
% reset MATLAB's PN generator to state "key"rand('state',16);
% initalize message to all onesmessage_vector=ones(1,Mo*No);
[cA1,cH1,cV1,cD1] = dwt2(watermarked_image,'haar');
% add pn sequences to H1 and V1 componants when message = 0 pn_sequence_h=round(2*(rand(Mw/2,Nw/2)-0.5));
pn_sequence_v=round(2*(rand(Mw/2,Nw/2)-0.5));

for (kk=1:length(message_vector))
correlation_h(kk)=corr2(cH1,pn_sequence_h);
correlation_v(kk)=corr2(cV1,pn_sequence_v);
correlation(kk)=(correlation_h(kk)+correlation_v(kk))/2;

end
for (kk=1:length(message_vector))
if (correlation(kk) > mean(correlation))
message_vector(kk)=0;
end
end
% reshape the message vector and display recovered watermark.figure(2)
message=reshape(message_vector,Mo,No);
imshow(message,[])
title('Recovered Watermark')
% display processing timeelapsed_time=cputime-start_time,

载体图像

水印图像

_key.bmp
另外想问一下_key.bmp在程序中起什么作用,PN发生器有何作用。因本人是初学,希望各位多多赐教。

参考技术A 隐藏的记号标记之类的吧应该是来自:求助得到的回答 参考技术A 我来回答!!!追问

晕,汗,详细点。。。

以上是关于有关Matlab中从三级小波域内提取水印遇到的问题,提取出的水印啥都没有,嵌入过程则没有问题。的主要内容,如果未能解决你的问题,请参考以下文章

信号处理基于小波变换的音频水印嵌入与提取matlab源码

信号处理基于小波变换的音频水印嵌入与提取matlab源码

语音隐藏基于matlab小波变换DWT结合离散余弦变换DCT音频数字水印嵌入提取含Matlab源码 2131期

语音隐藏基于matlab小波变换DWT结合离散余弦变换DCT音频数字水印嵌入提取含Matlab源码 2131期

信号处理基于小波变换的音频水印嵌入提取matlab源码

图像隐藏基于小波变换DWT图像水印嵌入提取含各类攻击matlab源码