发明名称 一种基于3D Wilson迷宫的数字置乱方法
摘要 本发明提供一种基于3D Wilson迷宫的数字置乱方法,预先对Wilson迷宫生成区域进行人为限定,从而可用于人为指定的任意3D封闭连通区域,同时按迷宫节点更新顺序对迷宫设定区域的每个节点赋予唯一的编号,由此产生迷宫设定区域所有节点的排列,在此基础上构造了基于3D Wilson迷宫节点更新序列和节点更新序列复合的置乱方法,从而可将所有节点置乱。本发明所给出的置乱方法具有普适性和灵活性,在使用过程中不存在任何限制,不仅能应用于传统置乱方法所针对的规则区域,例如正方形和矩形区域,也可用于任意选定的3D封闭连通不规则区域置乱。本发明也给出了用于图像位面立方体,RGB立方体和RGB通道立方体的图像置乱方法。
申请公布号 CN104463771A 申请公布日期 2015.03.25
申请号 CN201410751084.2 申请日期 2014.12.08
申请人 陕西师范大学 发明人 邵利平
分类号 G06T1/00(2006.01)I 主分类号 G06T1/00(2006.01)I
代理机构 西安通大专利代理有限责任公司 61200 代理人 陆万寿
主权项 一种基于3D Wilson迷宫的数字置乱方法,其特征在于包括以下步骤:第1步:设定迷宫初始范围为S<sub>init</sub>=()<sub>m×n×l</sub>和迷宫有效区域S<sub>maze</sub>=(s<sub>i,j,k</sub>)<sub>m×n×l</sub>,对于<img file="FDA0000627842630000011.GIF" wi="144" he="84" />i=0,…,m‑1,j=0,…,n‑1,k=0,…,l‑1,若<img file="FDA0000627842630000014.GIF" wi="279" he="83" />则标记s<sub>i,j,k</sub>=‑1,反之则标记s<sub>i,j,k</sub>=0表示该节点未访问,若s<sub>i,j,k</sub>&gt;0表示该节点已访问,统计S<sub>maze</sub>范围内的节点数量Num<sub>maze</sub>=count(S<sub>maze</sub>);第2步:对于<img file="FDA0000627842630000012.GIF" wi="302" he="84" />i=0,…,m‑1,j=0,…,n‑1,k=0,…,l‑1,记s<sub>i,j,k</sub>.d,d=0,1,2,3,4,5依次为节点s<sub>i,j,k</sub>的下方、右方、上方、左方、底部和顶部墙,初始化s<sub>i,j,k</sub>.d=‑1,d=0,1,2,3,4,5,‑1表示为有墙,0表示无墙;第3步:选择随机数发生器y=RG(x),设定随机数发生器初始值RG.init=seed,记已访问的节点数量Num<sub>visited</sub>,初始Num<sub>visited</sub>=0,初始化已访问迷宫节点列表A<sub>update</sub>=Φ;第4步:随机选取<img file="FDA0000627842630000013.GIF" wi="325" he="78" />x=x<sub>0</sub>,y=y<sub>0</sub>,z=z<sub>0</sub>,标记s<sub>x,y,z</sub>=1,将A<sub>update</sub>=A<sub>update</sub>.add(s<sub>x,y,z</sub>),Num<sub>visited</sub>=Num<sub>visited</sub>+1;第5步:若Num<sub>visited</sub><Num<sub>maze</sub>,则循环执行第6步~第10步;第6步:初始化Wilson随机游走路线列表A<sub>Wilson</sub>=Φ,初始化全0元素Wilson矩阵M<sub>Wilson</sub>=(mw<sub>i,j,k</sub>)<sub>m×n×l</sub>,其中mw<sub>i,j,k</sub>=0表示s<sub>i,j,k</sub>不在Wilson随机游走路线上,mw<sub>i,j,k</sub>=‑1表示s<sub>i,j,k</sub>在Wilson随机游走路线上;第7步:从s<sub>x,y,z</sub>周围S<sub>maze</sub>范围内有效节点s<sub>x+1,y,z</sub>,s<sub>x,y+1,z</sub>,s<sub>x‑1,y,z</sub>,s<sub>x,y‑1,z</sub>,s<sub>x,y,z‑1</sub>,s<sub>x,y,z+1</sub>中随机选择1个节点s<sub>x′,y′,z′</sub>作为当前节点,若s<sub>x′,y′,z′</sub>=0且mw<sub>x′,y′,z′</sub>=‑1,则在Wilson随机游走路线列表A<sub>Wilson</sub>=Φ中移除s<sub>x′,y′,z′</sub>第1次位置出现之后的所有节点并将对应的节点重新在M<sub>Wilson</sub>=(mw<sub>i,j,k</sub>)<sub>m×n×l</sub>矩阵上标记为0;第8步:若s<sub>x′,y′,z′</sub>=0且mw<sub>x′,y′,z′</sub>=0,则标记mw<sub>x′,y′,z′</sub>=‑1,则将s<sub>x′,y′,z′</sub>加入A<sub>Wilson</sub>,即A<sub>Wilson</sub>=A<sub>Wilson</sub>.add(s<sub>x′,y′,z′</sub>);第9步:若s<sub>x′,y′,z′</sub>=1,则将A<sub>Wilson</sub>中的所有节点标记为已访问,将其加入到A<sub>update</sub>,Num<sub>visited</sub>=Num<sub>visited</sub>+A<sub>Wilson</sub>.length;第10步,若从s<sub>x,y,z</sub>周围不存在可以访问的S<sub>maze</sub>范围内有效节点,则从A<sub>update</sub>随机选择1个节点作为当前节点s<sub>x,y,z</sub>;第11步:利用A<sub>update</sub>构造S<sub>maze</sub>=(s<sub>i,j,k</sub>)<sub>m×n×l</sub>范围内所有节点间的映射关系,从而将S<sub>maze</sub>=(s<sub>i,j,k</sub>)<sub>m×n×l</sub>范围内所有节点置乱。
地址 710062 陕西省西安市长安区陕西师范大学