資源簡介
Patchwork水印算法 上課用過的

代碼片段和文件信息
%根據W.?Bender的《Techniques?for?data?hiding》編寫
%用補丁方法對圖象做空間域的水印嵌入和提取,
%效率極高,程序簡潔,屬信息隱藏中常用的方法之一。
%作者:遼寧大學?信息學院?范鐵生
%email:fts0@163.com
%?
%?水印嵌入部分
clcclear?all
tic; %運算時間初始值
cover=double(imread(‘lena.bmp‘))./256;%歸一化
[mn]=size(cover);
%?讀入水印,并取二值化
message=im2bw(imread(‘baboon64.bmp‘));
[mmmn]=size(message);
%為偽隨機數發生器的種子
rand(‘state‘256); %嵌入的密鑰
f=cover; %時域方法
delta=.2 %*256;%歸一化后就不用*256了
ax=randperm(m);
ay=randperm(n);
bx=randperm(m);
by=randperm(n);
for?r=1:mm
????for?s=1:mn
????????if?message(rs)==1
???????????f(ax(r)ay(s))=f(ax(r)ay(s))+delta;
???????????f(bx(r)by(s))=f(bx(r)by(s))-delta;
????????else??????????????
???????????f(ax(r)ay(s))=f(ax(r)ay(s))-delta;
???????????f(bx(r)by(s))=f(bx(r)by(s))+delta;
????????end
????end
end
%水印提取部分
rand(‘state‘256); %提取的密鑰
ax=randperm(m);
ay=randperm(n);
bx=randperm(m);
by=randperm(n);
for?r=1:mm
????for?s=1:mn
????????if?f(ax(r)ay(s))-f(bx(r)by(s))>0
????????????watermark(rs)=1;
????????else?
????????????watermark(rs)=0;
????????end?
????end
end
figure
subplot(131)imshow(cover[]);title(‘原始圖像‘);
subplot(132)imshow(F[]);title(‘水印攻擊的圖像‘);
subplot(133)imshow(watermark*256[]);title(‘水印提取的圖像‘);
toc
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1383??2000-10-21?09:51??image_patchwork.m
-----------?---------??----------?-----??----
?????????????????1601????????????????????2
- 上一篇:TDOA 到達時間差測向定位系統
- 下一篇:歷屆六級真題中的詞組
評論
共有 條評論