⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 image_patchwork.m

📁 根据W. Bender的《Techniques for data hiding》编写 %用补丁方法对图象做空间域的水印嵌入和提取
💻 M
字号:
%根据W. Bender的《Techniques for data hiding》编写
%用补丁方法对图象做空间域的水印嵌入和提取,
%效率极高,程序简洁,属信息隐藏中常用的方法之一。
%作者:辽宁大学 信息学院 范铁生
%email:fts0@163.com
% 

% 水印嵌入部分
clc,clear all
tic;			%运算时间初始值
cover=double(imread('lena.bmp'))./256;%归一化
[m,n]=size(cover);
% 读入水印,并取二值化
message=im2bw(imread('baboon64.bmp'));
[mm,mn]=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(r,s)==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(r,s)=1;
        else 
            watermark(r,s)=0;
        end 
    end
end
figure
subplot(131),imshow(cover,[]);title('原始图像');
subplot(132),imshow(F,[]);title('水印攻击的图像');
subplot(133),imshow(watermark*256,[]);title('水印提取的图像');
toc

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -