图形加密的算法a=imread('tu1.bmp'); ws1=size(a); %read secret image
hénon混沌序列和水印算法 图像分解和Logistics混沌序列a=imread('tu1.bmp'); ws1=size(a); %read secret image b=imread('tu2.bmp'); ws2=size(b); %read host image nb=imresize(b,ws1(1:2)); %change two images into the same size key=-0.400001; %the initial value of henon chaotic series n=max(ws1); x(1)=key; y(1)=key; alpha=1.4; beta=0.3; for i=1:n-1 %generate henon chaotic series x(i+1)=1-alpha*x(i)^2+y(i); y(i+1)=beta*x(i); end 在图像加密和数字水印领域,混沌序列常常被用来增加安全性并实现隐藏信息。本文将详细探讨基于Hénon混沌序列的图像加密方法以及结合Logistics混沌序列的图像分解技术。 我们来看Hénon混沌序列在图像加密中的应用。Hénon混沌序列是一种非线性动力系统,其迭代公式为: \[ x_{n+1} = 1 - \alpha x_n^2 + y_n \] \[ y_{n+1} = \beta x_n \] 在给定的代码中,初始值`key=-0.400001`,参数`alpha=1.4`和`beta=0.3`用于生成混沌序列。通过迭代计算,我们可以得到一系列混沌点 `(x_i, y_i)`。这两个序列分别用于对秘密图像进行排序,从而实现加密。代码中使用了`sort`函数对两个混沌序列进行排序,并用排序后的索引对秘密图像像素进行重新排列,生成加密后的图像。 接下来,是水印算法的一部分,该算法使用奇异值分解(Singular Value Decomposition, SVD)。SVD是线性代数中的一个重要工具,可以将一个矩阵分解为三个矩阵的乘积。对于主机图像`nb`的每个颜色通道,代码首先进行SVD分解,然后将秘密图像的加密版本嵌入到SVD分解的奇异值矩阵中,再进行逆SVD操作,合成新的图像。使用`imshow`和`imwrite`函数展示和保存加密后的图像。 至于Logistics混沌序列在图像分解中的作用,它被用来打乱图像的顺序。Logistics混沌序列的迭代公式为: \[ r_{n+1} = 1 - 2r_n^2 \] 在这里,Logistics序列被用于分别对图像的行和列进行排序,从而将秘密图像分解为两个部分。这个过程提高了隐藏信息的难度,使得即使有人获取到分解后的图像,也难以恢复原始秘密图像。在解码过程中,通过反向操作,可以重新组合并解密这两个部分,恢复原始秘密图像。 总结来说,Hénon混沌序列用于图像加密,通过排序混沌序列对图像像素进行重新排列,提高安全性。而Logistics混沌序列则在图像分解中发挥作用,将图像分为两部分并打乱顺序,增加了隐藏和提取信息的复杂度。这两种混沌序列的使用,都是为了在图像处理中提供更高级别的安全保护。在实际应用中,这些技术可以结合其他加密和水印算法,以创建更强大的图像数据保护系统。
- 粉丝: 0
- 资源: 19
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助