Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2010-05-02, 21:26   #1
tomkeluqi
初级会员
 
注册日期: 2010-05-02
帖子: 1
声望力: 0
tomkeluqi 正向着好的方向发展
默认 请高人给一段基于DCT的图像水印代码注解

请各位高人给下面一段基于DCT的水印嵌入和提取代码作一下注解。由于我是新手,所以请你详细一点。非常感谢。还有,水印是怎么嵌入的,嵌入到哪个位置等问题也请你帮我回答一下。不胜感激。

%嵌入水印
for p=1:N
for q=1:N
x=(p-1)*block+1; y=(q-1)*block+1;
block_dct=trueImage(x:x+block-1,y:y+block-1);
block_dct=dct2(block_dct);
if waterMark(p,q)==0
a=-1;
else
a=1;
end
block_dct=block_dct*(1+a*0.03);
block_dct=idct2(block_dct);
I(x:x+block-1,y:y+block-1)=block_dct;
end
end
subplot(2,2,4);
imshow(I,[]);
title('嵌入水印图像');


%水印提取程序2
M=512;
N=64;
block=8;
for p=1:N
for q=1:N
x=(p-1)*block+1;
y=(q-1)*block+1;
BLOCK1=I(x:x+block-1,y:y+block-1);
BLOCK2=trueImage(x:x+block-1,y:y+block-1);
BLOCK1=idct2(BLOCK1);
BLOCK2=idct2(BLOCK2);
a=BLOCK1(1,1)/BLOCK2(1,1)-1;
if a<0
W(p,q)=0;
else
W(p,q)=1;
end
end
end
figure(2);
imshow(W);title(' 提取的水印');
tomkeluqi 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 17:19


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.