问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

有没有基于小波变化的图像数字水印技术的程序代码(matlab)(图像置乱,水印嵌入,提取,水印攻击)

发布网友 发布时间:2022-06-13 21:01

我来回答

2个回答

热心网友 时间:2023-10-15 15:25

clear;
%装入原图像1
load woman;
I=X;
%小波函数
type = 'db1';
% 2维离散Daubechies小波变换
[CA1, CH1, CV1, CD1] = dwt2(I,type);
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(counter1,counter2) = randn(1,1);
NEWC1(counter1, counter2) = double( C1(counter1, counter2) ) ...
+alpha * abs( double( C1(counter1, counter2) ) ) * marked1(counter1,counter2) ;
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(1,2,1);
image(I);
axis('square');
title('原始图像');
subplot(1,2,2);
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(1000,1);
for corrcounter = 1: 1: 1000
if( corrcounter == 500)
correlation1(corrcounter,1) = NEWC1X'*newmarked1 / (M1*N1);
else
rnmark = randn(M1*N1,1);
correlation1(corrcounter,1) = 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(corrcounter,1) * originalthreshold;
figure(3);
plot(correlation1, '-');
hold on;
plot(originalthresholdvector, '--');
title('原始的加水印图像');
xlabel('水印');
ylabel('检测响应');

另外,还有一个程序,希望可以帮到您!
clear all;
start_time=cputime;
I1=imread('hill1.jpg');
subplot(1,2,1);imshow(I1);
xlabel('(a)原始图像');
I2=imread('hill2.jpg');
subplot(1,2,2);imshow(I2,[]);
xlabel('(b)水印');
%三色分离
I1=double(I1);
I2=double(I2);
I1r=I1(:,:,1);
I2r=I2(:,:,1);
I1g=I1(:,:,2);
I2g=I2(:,:,2);
I1b=double(I1(:,:,3));
I2b=double(I2(:,:,3));
%系数r大,增加鲁棒性,r小增加透明性
r=0.05;
%水印R的分解
[Cwr,Swr]=wavedec2(I2r,1,'haar');
%图像R的分解
[Cr,Sr]=wavedec2(I1r,2,'haar');
%水印的嵌入
Cr(1:size(Cwr,2)/16)=Cr(1:size(Cwr,2)/16)+r*Cwr(1:size(Cwr,2)/16);
k=0;
while k<=size(Cr,2)/size(Cwr,2)-1
Cr(1+size(Cr,2)/4+k*size(Cwr,2)/4:size(Cr,2)/4+(k+1)*size(Cwr,2)/4)...
=Cr(1+size(Cr,2)/4+k*size(Cwr,2)/4:size(Cr,2)/4+(k+1)*size(Cwr,2)/4)+...
r*Cwr(1+size(Cwr,2)/4:size(Cwr,2)/2);
Cr(1+size(Cr,2)/2+k*size(Cwr,2)/4:size(Cr,2)/2+(k+1)*size(Cwr,2)/4)...
=Cr(1+size(Cr,2)/2+k*size(Cwr,2)/4:size(Cr,2)/2+(k+1)*size(Cwr,2)/4)+...
r*Cwr(1+size(Cwr,2)/4:size(Cwr,2)/4);
Cr(1+3*size(Cr,2)/4+k*size(Cwr,2)/4:3*size(Cr,2)/4+(k+1)*size(Cwr,2)/4)...
=Cr(1+3*size(Cr,2)/4+k*size(Cwr,2)/4:3*size(Cr,2)/4+(k+1)*size(Cwr,2)/4)+...
r*Cwr(1+3*size(Cwr,2)/4:size(Cwr,2)/2);
k=k+1;
end
Cr(1:size(Cwr,2)/4)=Cr(1:size(Cwr,2)/4)+r*Cwr(1:size(Cwr,2)/4);
g=0.025;
%水印G的分解
[Cwg,Swg]=wavedec2(I2g,1,'haar');
%图像G的分解
[Cg,Sg]=wavedec2(I1g,2,'haar');
%水印的嵌入
Cg(1:size(Cwg,2)/16)=Cg(1:size(Cwg,2)/16)+g*Cwg(1:size(Cwg,2)/16);
k=0;
while k<=size(Cg,2)/size(Cwg,2)-1
Cg(1+size(Cg,2)/4+k*size(Cwg,2)/4:size(Cg,2)/4+(k+1)*size(Cwg,2)/4)...
=Cg(1+size(Cg,2)/4+k*size(Cwg,2)/4:size(Cg,2)/4+(k+1)*size(Cwg,2)/4)+...
g*Cwg(1+size(Cwg,2)/4:size(Cwg,2)/2);
Cg(1+size(Cg,2)/2+k*size(Cwg,2)/4:size(Cg,2)/2+(k+1)*size(Cwg,2)/4)...
=Cg(1+size(Cg,2)/2+k*size(Cwg,2)/4:size(Cg,2)/2+(k+1)*size(Cwg,2)/4)+...
g*Cwg(1+size(Cwg,2)/4:size(Cwg,2)/4);
Cg(1+3*size(Cg,2)/4+k*size(Cwg,2)/4:3*size(Cg,2)/4+(k+1)*size(Cwg,2)/4)...
=Cg(1+3*size(Cg,2)/4+k*size(Cwg,2)/4:3*size(Cg,2)/4+(k+1)...
*size(Cwg,2)/4)+g*Cwg(1+3*size(Cwg,2)/4:size(Cwg,2)/2);
k=k+1;
end
Cg(1:size(Cwg,2)/4)=Cg(1:size(Cwg,2)/4)+g*Cwg(1:size(Cwg,2)/4);
b=0.1;
%水印B的分解
[Cwb,Swb]=wavedec2(I2b,1,'haar');
%图像B的分解
[Cb,Sb]=wavedec2(I1b,2,'haar');
%水印的嵌入
Cb(1:size(Cwb,2)/16)=Cb(1:size(Cwb,2)/16)+b*Cwb(1:size(Cwb,2)/16);
k=0;
while k<=size(Cb,2)/size(Cwb,2)-1
Cb(1+size(Cb,2)/4+k*size(Cwb,2)/4:size(Cb,2)/4+(k+1)*size(Cwb,2)/4)...
=Cb(1+size(Cb,2)/4+k*size(Cwb,2)/4:size(Cb,2)/4+(k+1)*size(Cwb,2)/4)+...
b*Cwb(1+size(Cwb,2)/4:size(Cwb,2)/2);
Cb(1+size(Cb,2)/2+k*size(Cwb,2)/4:size(Cb,2)/2+(k+1)*size(Cwb,2)/4)...
=Cb(1+size(Cb,2)/2+k*size(Cwb,2)/4:size(Cb,2)/2+(k+1)*size(Cwb,2)/4)+...
b*Cwb(1+size(Cwb,2)/4:size(Cwb,2)/4);
Cb(1+3*size(Cb,2)/4+k*size(Cwb,2)/4:3*size(Cb,2)/4+(k+1)*size(Cwb,2)/4)...
=Cb(1+3*size(Cb,2)/4+k*size(Cwb,2)/4:3*size(Cb,2)/4+(k+1)...
*size(Cwb,2)/4)+b*Cwb(1+3*size(Cwb,2)/4:size(Cwb,2)/2);
k=k+1;
end
Cb(1:size(Cwb,2)/4)=Cb(1:size(Cwb,2)/4)+b*Cwb(1:size(Cwb,2)/4);
%图像重构
I1r=waverec2(Cr,Sr,'haar');
I1g=waverec2(Cg,Sg,'haar');
I1b=waverec2(Cb,Sb,'haar');
%三色的叠加
temp=size(I1r);
pic=zeros(temp(1),temp(2),3);
for i=1:temp(1);
for j=1:temp(2);
pic(i,j,1)=I1r(i,j);
pic(i,j,2)=I1g(i,j);
pic(i,j,3)=I1b(i,j);
end
end
ot=uint8(round(pic));
%转化为uint8
I2_image_u=uint8(ot);
imwrite(I2_image_u,'watemarked.bmp','bmp');
%显示时间
e_time=cputime-start_time
figure;imshow(I2_image_u);
xlabel('数字图像水印效果')

热心网友 时间:2023-10-15 15:26

我也是做这个毕设~~求分享!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在爱水APP哪个模块中可以填写个人信息,查询自己一天的饮水量? 黄金为什么是避险产品 避险买什么 避险品种是什么 避险产品什么意思 什么是避险产品 ...对联和我们平时使用的印章,说说使用了哪几个字体 对联上写的是什么字 ...有一空是让我评价我自己,请各位哥哥姐姐帮帮忙,帮我编一段,往好了... 艾灸用品哪种好 arnold变换 图像置乱matlab程序 等号标红 基于Matlab语言编程,对任意类型和大小的灰度图像以及rgb图像完成Arnold置乱算法 古人歌颂伟大母爱的一首诗 一男N女的都市小说 股市上市公司一般公布业绩报告一季报、半年报、三季报、年报每年都在什么时间段披露? 交通工具意外保险与航空意外保险有什么不同 飞机交通意外险和航空意外险 用千牛里面的企拍主图短视频工具做好了主图视频,要怎么装修到我的淘宝店铺? 迷你世界邀请好友出生地 玩物得志怎么査看自已签收后的评价? 深圳漂亮好玩的地方 弗朗索瓦·布歇的艺术年表 请问哪有 中外 美术史 拼合年表? 想知道西方美术史的时间线! 空白页怎么删不掉啊 有没有电大靠谱的老师报名 我是初中毕业,今年20岁,想考个大专学历!有朋友说去电大,但是我也不知道 电大靠不靠谱!各位亲,有 电大中专报名 正规机构? 电大 中专靠谱吗 暂无额度es363。农行网捷贷,显示ES363 问一下人银中贵金库实体店卖的金条贵不贵? 图像加密的算法除了最基本的置乱和扩散有没有新奇点的加密算法? 请教各位大神,我想要一个基于图像色彩空间的三维Arnold置乱变换程序 信用卡逾期现在买了社保要去银行办卡,银行会不会查出来不给办理? 跪求演员刘烨演的电视剧,【免费高清】在线观看百度网盘资源 有好用的免费制作伴奏的软件介绍几个 梦见好多小花蛇在我鞋子里然后我把它们倒掉,脚再穿进去又有好多,它们不乱爬也没咬我 梦见好多蛇,其中一条被家人打死了,但后来又梦到蛇没死,被乌鸦给救了,等我穿鞋的时候有一条蛇在我鞋里 邳州市艾山风景名胜区的景区景点 手机经常无故关机? 524011开头的是哪个银行的卡 含有托物言志的诗句 有哪些托物言志的诗句? 中职生礼仪规范 你认为中职生最应该遵守的道德准则有哪些,最少写出三条? 关于中职学生公约《遵法纪,守规章》的征文 梦见自己长了满头的虱子,去朋友家洗头,又看见她已故的妈妈在折元宝是啥意思? 做梦梦见我在别人家用凉水洗头,是好是坏?请大家解答下谢谢! 怎样在公共场合对中职生行为规范的管理 解梦见在男朋友家里洗头 银行卡变了怎么办?