[0059] 在步骤S3中,根据混沌序列和第一幅立体图像构建第一复数矩阵。
[0060] 在本发明的一个实施例中,步骤S3进一步包括:
[0061] 将混沌序列中前2NM个数值进行尺寸处理,生成实数矩阵;
[0062] 将第一幅立体图像的左右视角图像首尾相连,得到第一图像矩阵;
[0063] 将实数矩阵和第一图像矩阵分别作为实部分量和虚部分量,构建第一复数矩阵。
[0064] 具体地,在得到混沌序列后,将前2NM个数值调整为尺寸为N×2M的矩阵H1,作如下处理构建实数矩阵f0,如下:
[0065] f0=floor(255*H1)
[0066] 其中,floor(·)表示取整运算。
[0067] 接下来,将第一幅立体图像的左右视角图像首尾相连表示为
[0068] F1=[f1,L f1,R]
[0069] 式中,f1,L、f1,R分别表示左视角、右视角图像分量。
[0070] 接下来,将矩阵f0与矩阵F1分别作为实部分量和虚部分量构建复数矩阵,即:
[0071] G1=f0+jF1
[0072] 在步骤S4中,对第一复数矩阵进行调制和Gyrator变换,得到第一复数矩阵对应的幅值和相位。
[0073] 在本发明的一个实施例中,混沌序列除生成实数矩阵外,还包括:
[0074] 将混沌序列中剩余2NM个数值进行尺寸处理,生成相位掩模矩阵;
[0075] 根据相位掩模矩阵对第一复数矩阵进行处理,得到第一复数矩阵对应的幅值和相位。
[0076] 具体地,在得到实数矩阵后,将剩余2NM个数值调整为尺寸为N×2M的矩阵M1,作如下处理构建相位掩模矩阵M,如下
[0077] M=exp(j2πM1)
[0078] 在本发明的一个实施例中,Gyrator变换的计算公式为:
[0079]
[0080] 其中,α表示调整角度,(u,v)表示频域坐标,fc(x,y)表示根据相位掩模矩阵对第一复数矩阵处理后的结果,(x,y)表示空间域坐标。
[0081] 具体而言,对复数矩阵进行调制、Gyrator变换(角度为α),并得到幅值和相位。计算过程为:
[0082] Q1=Gα{G1·M}
[0083] h2=PT[Q1]
[0084] p1=AT[Q1]
[0085] 其中,Gyrator变换的计算公式为,
[0086]
[0087] 其中,符号PT[·]、AT[·]分别表示取幅值和相位,(u,v)表示频域坐标。
[0088] 需要说明的是,当计算矩阵Q1时,fc(x,y)=G1·M。
[0089] 在步骤S5中,根据第一复数矩阵对应的幅值和第二幅立体图像构建第二复数矩阵,并对第二复数矩阵进行截断编码,得到第二复数矩阵未变换的相位。
[0090] 在本发明的一个实施例中,步骤S5中,根据第一复数矩阵对应的幅值和第二幅立体图像构建第二复数矩阵,进一步包括:
[0091] 将第二幅立体图像的左右视角图像首尾相连,得到第二图像矩阵;
[0092] 将第一复数矩阵对应的幅值和第二图像矩阵分别作为实部分量和虚部分量,构建第二复数矩阵。
[0093] 具体地,将第二幅立体图像的左右视角图像首尾相连表示为:
[0094] F2=[f2,L f2,R]
[0095] 式中,f2,L、f2,R分别表示左视角、右视角图像分量。
[0096] 将步骤S4中得到的幅值与矩阵F2编码构建成复数矩阵,即:
[0097] G2=h2+iF2
[0098] 接下来,对G2进行幅值截断编码得到G2对应的相位,即:
[0099] m1=AT[G2]
[0100] 在步骤S6中,将第一复数矩阵对应的相位和第二复数矩阵未变换的相位相乘,得到密钥,即:
[0101] p1n=p1conj(m1)
[0102] 其中,p1n表示密钥,conj(·)表示共轭运算,p1表示第一复数矩阵对应的相位,m1表示第二复数矩阵未变换的相位。
[0103] 也就是说,将步骤S4中得到的相位与步骤S5中得到的相位共轭运算。
[0104] 在步骤S7中,对第二复数矩阵进行调制和Gyrator变换,得到第二复数矩阵对应的幅值和相位,迭代步骤S4‑S7,直至得到第n复数矩阵对应的幅值和相位,得到n‑1个密钥。
[0105] 可以理解的是,对步骤S6中矩阵G2进行调制、Gyrator变换(角度为β),并得到幅值和相位,即:
[0106] Q2=Gβ{G2·M}
[0107] h3=PT[Q2]
[0108] p2=AT[Q2]
[0109] 重复步骤S4‑S7,直至对最后一幅立体图像进行处理得到幅值和相位。
[0110] Qn=Gγ{Gn·P}
[0111] hn+1=PT[Qn]
[0112] pn=AT[Qn]
[0113] 其中,γ表示角度,Gn表示由第(n‑1)次Gyrator变换的幅值与第n幅立体图像组成的复数矩阵,hn+1为密文,p1n、……、pn为密钥。
[0114] 可以理解的是,假设n为3,即共有三幅立体图像,在得到第二复数矩阵对应的幅值和相位后,本发明实施例将第三幅立体图像的左右视角图像首尾相连,即:
[0115] F3=[f3,L,f3,R]
[0116] 其中,f3,L、f3,R分别表示左视角、右视角图像分量。
[0117] 将步骤S7中得到的第二幅立体图像的幅值与矩阵F2编码为第三复数矩阵,即:
[0118] G3=h3+iF3
[0119] 对G3进行幅值截断编码得到,
[0120] m2=AT[G3]
[0121] 将步骤S7中获得第二幅立体图像的相位与第三幅立体图像未变换的相位m2相乘,即:
[0122] p2n=p2conj(m2)
[0123] 对第三复数矩阵G3进行调制、Gyrator变换,并得到幅值和相位,即:
[0124] Q3=Gγ{G3·P}
[0125] h4=PT[Q3]
[0126] p3=AT[Q3]
[0127] 得到第三复数矩阵对应的幅值和相位,结束迭代过程,得到2个密钥。若n为4,那么以此类推。
[0128] 最后,本发明实施例对密文图像,使用正确的密钥,通过上述加密过程进行逆操作,可以恢复出原始明文图像。
[0129] 综上,本发明实施例使用实矩阵表示将不同视角分量联结为一个整体,并级联的Gyrator变换避免了迭代过程,具有更高的效率,将前一幅图像变换后相位与后一幅图像变换前的相位相乘,具有更高的安全性。
[0130] 如图3所示,下面结合具体实施例对本发明实施例的多立体图像加密方法做进一步说明。
[0131] 为了验证本发明方法的有效性和可行性,选择三幅立体图像(如图2,第一行为左视角图像,第二行为右视角图像)进行实验,图像大小为256×256,α=β=γ=0.9071。根据上述加密方法,得到的密文图像如图4所示,可以看出密文图像信息混乱无序,从中看不出原始三幅明文立体图像的任何有用信息,如图5所示,使用正确的秘钥解密结果,使用峰值信噪比和结构相似度客观评价恢复明文图像的质量,其峰值信噪比分别为301.3934dB、301.9568dB、301.8432dB、302.3541、305.7433dB和306.6270dB,结构相似度均为1.0000,可以看出,解密图像与原始图像一致。
[0132] 根据本发明实施例提出的多立体图像加密方法,采用实矩阵表示将不同视角图像表示为一个整体,并通过级联的Gyrator变换得到密文,能够实现多幅立体图像的同时加密和传输,具有较高的传输效率和安全性,可应用于立体图像的安全通信领域。
[0133] 其次参照附图描述根据本发明实施例提出的多立体图像加密系统。
[0134] 图6是本发明一个实施例的多立体图像加密系统结构示意图。
[0135] 如图6所示,该多立体图像加密系统10包括:获取模块100、计算模块200、构建模块300、调整模块400、截断编码模块500、共轭运算模块600和迭代模块700。
[0136] 其中,获取模块100,用于获取n个归一化立体图像,其中,n为大于且等于2的正整数。
[0137] 计算模块200,用于计算n个归一化立体图像的左右视角图像的标准差的平均值,并根据平均值生成混沌序列。
[0138] 构建模块300,用于根据混沌序列和第一幅立体图像构建第一复数矩阵。
[0139] 调整模块400,用于对第一复数矩阵进行调制和Gyrator变换,得到第一复数矩阵对应的幅值和相位。
[0140] 截断编码模块500,用于根据第一复数矩阵对应的幅值和第二幅立体图像构建第二复数矩阵,并对第二复数矩阵进行截断编码,得到第二复数矩阵未变换的相位。
[0141] 共轭运算模块600,用于将第一复数矩阵对应的相位和第二复数矩阵未变化的相位相乘,得到密钥。
[0142] 迭代模块700,用于对第二复数矩阵进行调制和Gyrator变换,得到第二复数矩阵对应的幅值和相位,并继续迭代执行调整模块,直至得到第n复数矩阵对应的幅值和相位,得到n‑1个密钥。
[0143] 需要说明的是,前述对多立体图像加密方法实施例的解释说明也适用于该系统,此处不再赘述。
[0144] 根据本发明实施例提出的多立体图像加密系统,采用实矩阵表示将不同视角图像表示为一个整体,并通过级联的Gyrator变换得到密文,能够实现多幅立体图像的同时加密和传输,具有较高的传输效率和安全性,可应用于立体图像的安全通信领域。
[0145] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0146] 此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0147] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0148] 在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0149] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0150] 本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0151] 此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0152] 上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。