Patchwork图像信息隐藏

(28) 2023-09-27 12:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说Patchwork图像信息隐藏,希望能够帮助你!!!。

原理

1) Patchwork是指从载体数据中选择一些数据组成两个集合,然后通过修改这两个集合之间的某种关系来携带水印信息。这两个集合可以是两个系数、两组系数或两个特征量。两个集合之间的关系可以是大小关系、能量关系、逻辑关系和奇偶性关系等

2) Patchwork方法嵌入水印时,通过修改集合之间的某种关系来嵌入水印。提取水印时,则根据对应的关系来提取嵌入的水印信息。Patchwork方法最大优点之一是可以实现盲检测。Patchwork适用于时空域、变换域和压缩域,本节内容是时域下的典型Patchwork方法

3) Patchwork方法典型算法只能隐藏1bit的信息,只能说明该图像是否存在水印,隐藏的信息量较小,但是该算法的鲁棒性较强。算法原理:随机选择两个集合A = {ai}和B = {bi},要求A和B中含有相同图像系数,设为n;将集合A中所有样点的像素值增加d,同时将集合B中所有样点的像素值减少d,这样两个集合中的样值都经过微小的改动

4) 本节中集合A和B的选择方法是根据图像的横坐标和纵坐标之和的奇偶性不同将图像分为两组,将横坐标和纵坐标之和为偶数的所有系数上增加常量d = 2.3,将横坐标和纵坐标之和为奇数的所有系数上减少常量d = 2.3。另一种方法是随机选择N对像素点(ai和bi),然后将ai点的值增加d,bi点的值减少d

一、 横纵坐标选择

1.1 嵌入秘密信息。打开MATLAB 7.1,依次点击“File”->“New”->“M-File”打开M文件编辑窗口,输入命令。如图所示

Patchwork图像信息隐藏_https://bianchenghao6.com/blog__第1张

1.2 点击工具栏中的“Save”按钮保存M文件到work文件夹下(C:\Program Files (x86)\MATLAB71\work),文件名为“patchwork.m”。将“C:\Users\Administrator\Desktop\信息隐藏技术\Patchwork图像信息隐藏”中的“test.bmp”复制到work文件夹下。

1.3 回到MATLAB命令窗口,输入命令“patchwork”运行M文件查看结果。如图所示

Patchwork图像信息隐藏_https://bianchenghao6.com/blog__第2张

1.4 原始图像和携密图像在视觉效果上几乎相同,提取时,将两个图像块集合的样本分别求平均值,计算两个样本均值的差,以此判断水印信息是否存在。

1.5 新建M命令文件extract.m,进入编辑窗口,输入命令。如图所示

Patchwork图像信息隐藏_https://bianchenghao6.com/blog__第3张

1.6 保存M文件并运行,查看结果。如图所示

Patchwork图像信息隐藏_https://bianchenghao6.com/blog__第4张

1.7 watermark值为1说明水印信息存在。

二、 随机选择

2.1 将“C:\Users\Administrator\Desktop\信息隐藏技术\Patchwork图像信息隐藏”中的“huidu.bmp”复制到work文件夹下。新建M文件randhiding.m,进入编辑窗口输入命令。如图所示

Patchwork图像信息隐藏_https://bianchenghao6.com/blog__第5张

2.2 完整命令如下:

clc;

clear;

oi=imread('huidu.bmp');%读入载体灰度图像

wi=oi;

[row col]=size(wi);

wi=double(wi);

wi=wi(:);

oi=double(oi);

oi=oi(:);

n=floor((row*col)/10);

length=row*col;

rand('state', 123);%产生随机数的密钥

a=rand(1,n);%产生n长度的随机数

d=2.3;%定义修改的分量

count=0;

k=1;

while k<=n

if (a(1,k)>=0.5)

wi(k*10,1)=wi(k*10,1)+d;

wi(k*10-1,1)=wi(k*10-1,1)-d;

end

k=k+1;

end

for i=1:row

for j=1:col

wi1(i,j)=wi(row*(j-1)+i,1);

end

end

wi1=uint8(wi1);

figure;

imshow('huidu.bmp');title('原始图像');

imwrite(wi1,'watermarked.bmp');

figure;

imshow('watermarked.bmp');title('携秘图像');

2.3 保存M文件并运行,查看结果。如图所示

Patchwork图像信息隐藏_https://bianchenghao6.com/blog__第6张

2.4 新建M文件randextract.m,在编辑窗口中输入命令。如图所示

Patchwork图像信息隐藏_https://bianchenghao6.com/blog__第7张

2.5 保存M文件并运行,查看结果。如图所示

Patchwork图像信息隐藏_https://bianchenghao6.com/blog__第8张

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复