社区
图形处理/算法
帖子详情
谁知道hilbert置乱算法
newstudys
2005-01-24 04:04:27
有水知道hilbert置乱算法,怎么实现把一维数组进行置乱
...全文
277
1
打赏
收藏
谁知道hilbert置乱算法
有水知道hilbert置乱算法,怎么实现把一维数组进行置乱
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
I_Love_CPP
2005-01-24
打赏
举报
回复
第二章 基于Hilbert曲线的数字图像置乱技术
2.1 关于Hilbert曲线
约定:(1)为了便于在 语言中使用指针,我们统一将图像矩阵(即二维数组)转化为一维数组来处理。即图像中的象素 用数组元素 来代替。
(2)假设Hilbert曲线遍历矩阵统一按顺时针方向进行。
为了寻求Hilbert曲线遍历的规律,我们首先来看一个最简单的情况,即矩阵只有四个元素的情况。
图1 2阶Hilbert曲线遍历图
阶Hilbert曲线如图1(b)所示,若原图像中像素的排列顺序为1、2、3、4,遍历是从左下角开始直至右下角结束,其遍历顺序依次为3、1、2、4。同理, 阶和 阶的Hilbert曲线及其遍历结果如下所示。
图2 4阶Hilbert曲线遍历图
由上图中 阶Hilbert曲线,我们可以得到遍历顺序为:
13 14 10 9
5 1 2 6
7 3 4 8
12 11 15 16
而且此顺序可以构成一个与原图同样大小的矩阵。
阶的Hilbert曲线及其遍历结果如图3所示。同样,它的遍历结果也构成了一个 的矩阵。
图3 8阶Hilbert曲线遍历图
其遍历的结果可由下面的矩阵来表示:
57 49 50 58 59 60 52 51
43 44 36 35 34 42 41 33
25 26 18 17 9 1 2 10
11 3 4 12 20 19 27 28
29 30 22 21 13 5 6 14
15 7 8 16 24 23 31 32
40 48 47 39 38 37 45 46
54 53 61 62 63 55 56 64
我们仔细分析一下Hilbert曲线遍历的情况,可以发现以下规律:对于 的(即 阶的)Hilbert曲线遍历,它可分为 个 (即 阶的)的Hilbert曲线遍历;而每个 的Hilbert曲线遍历又分为 个 (即 阶)的Hilbert曲线遍历。我们不妨把四个低阶的Hilbert曲线遍历矩阵命名为:H1,H2,H3,H4。
(H) 阶的Hilbert曲线 (a)H1 (b)H2 (c)H3 (d)H4
图4 Hilbert曲线遍历的各种情况
(1) 同一阶的 个小的Hilbert曲线遍历其形状完全相同,只是摆放方向略有改动:位于左上角H2和右上角H3的两个完全相同且与高阶的遍历方向相同;左下角H1是把H2或H3沿副对角线转置而成的;右下角H4是把H2或H3沿对角线转置而成的。图4中以 阶的Hilbert曲线为例作了说明。
(2) 矩阵的Hilbert曲线遍历是最基础的,即是最底层的。任何一阶的Hilbert曲线遍历均要归结到 、 、 、 这个顺序上来。下图便是构成任意n阶Hilbert曲线的基本元素,整个曲线是由n/4个这样的基本元素构成的。
图5 最基本的Hilbert曲线遍历
因此,可以推导出Hilbert曲线遍历的一般规律如下:
对于任意一个 阶图像( )的Hilbert曲线遍历,总能将它分成 个 阶的“小” Hilbert曲线遍历,而且每个 阶的“小” Hilbert曲线遍历又可继续细分为 个 阶的“更小” Hilbert曲线遍历,如此继续直至 ,而 阶的Hilbert曲线遍历是最基本的,可直接实现。对于左下角的H1,先沿副对角线转置再进行 阶的“小” Hilbert曲线遍历;对于左上角的H2和右上角的H3则直接进行 阶的“小” Hilbert曲线遍历;对于右下角的H4,先沿对角线转置再进行 阶的“小” Hilbert曲线遍历。
2.2 基于Hilbert曲线的数字图像位置置乱
现在我们要讨论的是如何利用Hilbert曲线对图像进行置乱。首先我们知道图像是一个个象素点构成,每个象素点有一确定的灰度值大小,而这些灰度值构成了一个 的矩阵 。
于是我们先将图像的象素矩阵分成四个大的小块进行Hilbert曲线置乱,再将这四个小块分成更小的四个小块进行Hilbert曲线置乱,一直这样做下去,直到每个小块都是 的象素块,并对其进行Hilbert曲线置乱,即是说按照Hilbert曲线的遍历顺序,将图像矩阵 中对应位置的灰度值依次存入矩阵 中,最后得到的新的图像象素矩阵 即是经过Hilbert曲线遍历后的图像矩阵,从外观上看图像已完全失去了原有特征,达到了我们对秘密图像进行置乱的目的。实践证明,利用Hilbert曲线对图像进行置乱,图像隐蔽性强,只需很少的变换次数图像就面目全非。图6即是利用Hilbert曲线进行图像置乱的效果图,从图中我们可以看到只需对图像进行一次Hilbert曲线遍历,图像就已经杂乱无章了,失去了原有的面目。经过五次Hilbert曲线遍历后图像就变得密密麻麻,完全不再具有原来图像的特征了。
Matlab项目实例源码48个合集
GUI动态画图曲线的源码 Huffman霍夫曼编码译码界面设计源程序 基于DCT水印源码 三次样条插值法求信号的包络线源码 中colorbar的设置源码 使用欧拉Euler法求解微分方程组 信号处理频谱分析加汉宁窗函数zip 光通过三砖镜色散动画 四阶龙格库塔法求解微分方程数值解源码 图像处理Hough霍夫曼直线检测源码 I图像处理直线识别(拟合角平分线) 图像处理螺纹识别源码 基本语法和语句示例练习 夜间车牌识别程序 txt文本数据分离的源码 不同插值方法的GUI界面设计源码 偏微分方程的差分计算源码 图像分otsuf源码 图像去噪滤波锐化边缘检测源码 学生成绩查询系统源码程序 正方体旋转源码 灰度预测模型的源码 线性拟合和相关系数源码 寻找素数的源码 希尔伯特
Hil
bert
变换求包络谱源码 建模人口增长模型源码 拟合求解圆心和半径源码 求解混沌系统微分方程组 计算粒子速度分布源码 设计的简单滤波器程序源码 RBF神经网络的训练源码 基于仿射变换的数字图象
置乱
技术源码 拉格朗日插值源码 文字连通域源码 智能
算法
30个案例分析源码 求解无穷区间定积分问题源码 求解矩阵的特征值源码 ..
基于Matlab的Arnold图像
置乱
算法
自从上次写了
Hil
bert
图像
置乱
之后,就对图像
置乱
研究了一下,发现这里面也是有很多
置乱
算法
的。Arnold也算一种比较主要的
置乱
算法
,
算法
由以下变换公式产生:这里a和b是参数,n是迭代次数,N是图像的高或宽。有了正变换公式,我们还需要反变换公式,正好我最近在学Mathematica,反变换公式就是用这个软件求的。公式如下:两个变换矩阵正好是求逆的关系吧,手算也出来了,不过顺便熟悉一下Mathem...
基于排序变换和混沌Logistic映射的图像
置乱
软件实现
有序的像素组成了人们所看到的各种各样的图片。图像
置乱
算法
的核心就是将原图像的像素搅乱,使得图像表达的意义失效,从而达到保护图像信息安全的目的。“基于排序变换和混沌Logistic映射的图像
置乱
算法
”是众多图像
置乱
算法
中的一种。该
算法
首先利用混沌Logistic映射产生混沌序列,然后通过混沌序列的排序变换来得到图像置换的地址码,最后根据地址码完成图像
置乱
。 本文主要介绍通过对“基于排序变换和混沌Logistic映射的图像
置乱
算法
”的分析与研究,将原
算法
中混沌序列排序、生成地址映射数组两个串行执行的
算法
步骤,改
matlab
置乱
,matlab练习程序(Arnold图像
置乱
)
自从上次写了
Hil
bert
图像
置乱
之后,就对图像
置乱
研究了一下,发现这里面也是有很多
置乱
算法
的。Arnold也算一种比较主要的
置乱
算法
,
算法
由以下变换公式产生:这里a和b是参数,n是迭代次数,N是图像的高或宽。有了正变换公式,我们还需要反变换公式,正好我最近在学Mathematica,反变换公式就是用这个软件求的。公式如下:两个变换矩阵正好是求逆的关系吧,手算也出来了,不过顺便熟悉一下Mathem...
用java实现图像的
置乱
加密,常见的图像
置乱
加密
算法
在网络上传输的数据中有些图片数据是需要加密的,如军用卫星照片、设计图纸、患者病例等。这些数据一旦被非法获取,则会泄露个人隐私,严重的甚至会影响国家安全,这些重要的图像数据在互联网上传播必须要进行有效的加密。图像
置乱
技术就是一种针对图像信息的加密技术,这一技术可以将原始图像变得杂乱无章,使变换后的图像无法反映原始图像的信息,这样即使图像信息被非法获取,获取者也无法从中直接获取有用信息。那么接下来我们...
图形处理/算法
19,468
社区成员
50,698
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章