一种遥感图像的安全外包去噪方法与流程

文档序号:12722545阅读:220来源:国知局
一种遥感图像的安全外包去噪方法与流程

本发明涉及图像去噪技术领域,具体地说,是一种遥感图像的安全外包去噪方法。



背景技术:

遥感图像在获取和传输过程中,受各种噪声影响,使图像的边缘纹理等细节丢失,线条迷糊,从而导致图像的质量降低,增大了遥感图像的分析与处理难度。为获取清晰的、高质量的遥感图像必须对其进行去噪或降噪的预处理。

随着空天地立体化遥感技术的发展,遥感图像数据呈爆炸式增长,传统的基于单机模式的遥感图像处理暴露出许多问题,如处理速度慢、并发性能差等。因而传统遥感图像处理模式已经逐渐无法满足用户海量高精度遥感图像处理的需求,所以迫切需要寻求一种新的高效的遥感图像处理模式与处理方法。

云计算就是一种新的计算模式,它是一个典型的分布式、并行计算模型,该模型能够大大缩短计算任务的执行时间。随着遥感图像处理速度要求不断地提高,遥感图像处理越来越多地适合在分布式并行计算的云计算平台上进行。

由于云平台本身的开放性特点,为遥感图像的安全带来新威胁,无法保证海洋遥感影像的安全性。因此,为了保护数据的安全性,很有必要对于敏感数据进行加密。

中国发明专利CN201510220372.X,公开日为2016.12.07,公开了一种结合非局部先验的复合正则化图像去噪方法。但是该方法无法对图像进行加密及去噪。

因此,亟需一种能够对遥感图像加密并去噪的方法,既完成去噪又保证遥感图像安全,而目前关于这种去噪方法还未见报道。



技术实现要素:

本发明的目的是针对现有技术中的不足,提供一种。

为实现上述目的,本发明采取的技术方案是:

一种遥感图像的安全外包去噪方法,所述去噪方法包括以下流程:

S1:遥感图像拆分处理;

S2:遥感图像随机排列;

S3:遥感图像Johnson–Lindenstrauss转换;

S4:遥感图像Paillier加密;

S5:遥感图像去噪;

S6:遥感图像Paillier解密;

S7:遥感图像恢复排列;

S8:遥感图像合并处理。

其中,所述的步骤S5中的遥感图像去噪为遥感图像非局部去噪,所述的步骤S1-S4、S6-S8在本地客户端进行,所述的步骤S5在云端进行。

所述的步骤S1遥感图像拆分处理中,其步骤为:读取遥感图像,设遥感图像的长为im_h,宽为im_w,波段数为im_band_number,按照波段将遥感图像拆分为im_band_number个图像,分别读取各个波段的16位深的灰度值。

所述的步骤S2遥感图像随机排列中,选取一个波段的遥感图像,对其进行随机排列,其步骤如下:

S21:生成一个长度为im_h×im_w的随机数序列,并记录其索引顺序为索引顺序A1;

S22:将这个随机数序列按照从小到大的顺序进行排列,并记录其索引顺序为索引顺序A2;

S23:根据索引顺序A1和索引顺序A2,得到图像置换数列和图像恢复数列;

S24:对图像进行置换,其具体过程如下,

S241:利用S23的图像进行随机排列的数列对遥感图像进行块置换;

S242:图像的16位深灰度值数组为im_array,获取以im_array[m,n]为中心的d×d大小的矩阵块,并将矩阵块转化为一行;

S243:将数组im_array中的所有点重复步骤S242,最终获得一个新数组;

S244:利用图像置换数列对S243中的新数组进行行置换,再次得到新数组;

S245:对S244中的新数组,即完成行置换的数组,进行变维操作,得到一个三维数组im_block_permutation_array,该数组的长为im_h,宽为im_w,高为d2

S25:利用图像置换数列对遥感图像进行像素置换,得到一个二维数组im_pixel_permutation_array,该数组的长为im_h,宽为im_w。

所述的步骤S3遥感图像Johnson–Lindenstrauss转换中,对完成块置换的结果进行Johnson–Lindenstrauss转换,即将每一个1×d2的向量压缩成一个1×k 的向量,得到一个三维数组im_JL_array,该数组的长为im_h,宽为im_w,高为k,其步骤如下,

S31:随机生成一个服从平均值为0,方差为1/k的高斯分布的d2×k的矩阵P;

S32:使用三维数组im_block_permutation_array,利用数组中的[m,n,0]、[m,n,1]、……、[m,n,d2-2]、[m,n,d2-1],组成一个行矩阵α;

S33:随机生成一个服从平均值为0,方差为ζ的高斯分布的1×k的矩阵Δ;

S34:计算αP得到矩阵Y;

S35:计算Y+Δ得到α′;

S36:得到三维数组im_JL_array,即im_JL_array[m,n,0]=α′[0,0],im_JL_array[m,n,1]=α′[0,1],……,im_JL_array[m,n,k-2]=α′[0,k-2],im_JL array[m,n,k-1]=α′[0,k-1]。

所述的步骤S4遥感图像Paillier加密中,对二维数组im_pixel_permutation_array进行paillier加密,得到一个二维数组im_paillier_array,该数组的长为im_h,宽为im_w,其具体步骤如下,

S41:选取两个随机素数p、q,并根据计算公式N=pq,得出N的值;

S42:计算出paillier加密参数λ和g,得到paillier加密的公钥是(N,g),私钥是λ;

S43:计算gm的值,m∈[0,65535],并把所有结果保存在第一个表;

S44:随机生成65536个随机数r,计算(gN)r的值,并把所有结果保存在第二个表;

S45:对于二维数组的点im_pixel_permutation_array[i,j],从第二个表中查找m的值等于该点对应的gm的值;

S46:从第二个表中随机抽取5个不同的(gN)r的值,即(gN)r1,(gN)r2,(gN)r3,(gN)r4,(gN)r5

S47:im_paillier_array[i,j]=gm(gN)r1(gN)r2(gN)r3(gN)r4(gN)r5mod N2

S48:将二维数组im_pixel_permutation_array所有的点重复步骤S45-S47,得到数组im_paillier_array。

所述的步骤S5遥感图像去噪中,对数组im_JL array和im_paillier_array进行非局部去噪,得到一个二维数组im_paillier_result_array,该数组的长为im_h,宽为im_w,其具体步骤如下:

S51:选取h1的值,h1为进行非局部去噪的滤波参数;

S52:计算A的值,A为放大倍数,计算公式为A=27×im_h×im_w;

S53:用im_JL array[m,n,0],im_JL_array[m,n,1],……,im_JL_array[m,n,k-2],im_JL array[m,n,k-1]组成一个行向量,记为V(m,n);

S54:用im_JL_array[i,j,0],im_JL_array[i,j,1],……,im_JL_array[i,j,k-2],im_JL_array[m,n,k-1]组成一个行向量,记为V(i,j);

S55:计算os_dis_square[i,j]的值,os_di_square[i,j]为像素点i和像素点j之间的欧式距离的平方,计算公式为

S56:计算dis[i,j]的值,计算公式为

S57:计算Z的值,计算公式为其中Ω为整个图像;

S58:计算Q[i,j]的值,计算公式为

S59:计算W[i,j]的值,计算公式为

S510:确定W_number的值;

S511:确定os_dis_square数组中第W_number的值为dis_square,并计算h2的值,h2为进行非局部去噪的滤波参数,计算公式为

S512:将os_dis_square[i,j]与square进行比较,若os_dis_square[i,j]>square,则W[i,j]=0,若os_dis_square[i,j]<square,则

S513:计算im_paillier_result_array[i]的值,计算公式为其中Ω为整个图像;

S514:将数组im_paillier_result_array中的所有点重复步骤S53-S513,将数组im_paillier_array中的所有点重复步骤S54-S59、S512;

S515:得到数组im_paillier_result_array。

所述的步骤S6遥感图像Paillier解密中,利用私钥对二维数组im_paillier_result_array进行Paillier解密,得到一个二维数组im_permutation_result_array,该数组的长为im_h,宽为im_w,其具体步骤如下:

S61:计算U的值,计算公式为

S62:对于二维数组中的点im_paillier_result_array[i,j],计算其对应像素点c的NL的值,计算公式为

S63:

S64:将数组im_paillier_result_array的所有点重复S62-S63,得到数组im_permutation_result_array。

所述的步骤S7遥感图像恢复排列中,其步骤为:利用图像恢复数列,对数组im_permutation_result_array进行遥感图像的像素置换恢复,得到一个二维数组im_result_array,该数组的长为im_h,宽为im_w。

所述的步骤S8遥感图像合并处理中,其步骤为:将每一个波段的遥感图像重复S2-S7,进行合并处理,得到完成去噪后的完整遥感图像。

本发明优点在于:

1、将在本地拆分并加密后的遥感图像放在云端进行图像去噪处理;

2、不出现信息泄漏问题;

3、只需在本地进行解密和合并后就可以得到该遥感图像完成去噪后的图像;

4、可以提高原图像的PSNR的值。

附图说明

图1是本发明的一种遥感图像的安全外包去噪方法的总工作流程图。

图2是本发明的一种遥感图像的安全外包去噪方法的具体工作流程图。

图3是本发明的一种遥感图像的安全外包去噪方法的单波段遥感图像去噪示意图。

图4是本发明的一种遥感图像的安全外包去噪方法的遥感图像Johnson–Lindenstrauss转换流程图。

具体实施方式

下面结合附图对本发明提供的具体实施方式作详细说明。

实施例1

参照图1,本发明的一种遥感图像的安全外包去噪方法的总工作流程如下:

S1:遥感图像拆分处理;

S2:遥感图像随机排列;

S3:遥感图像Johnson–Lindenstrauss转换;

S4:遥感图像Paillier加密;

S5:遥感图像去噪;

S6:遥感图像Paillier解密;

S7:遥感图像恢复排列;

S8:遥感图像合并处理。

其中,所述的步骤S5中的遥感图像去噪为遥感图像非局部去噪,所述的步骤S1-S4、S6-S8在本地客户端进行,所述的步骤S5在云端进行。

实施例2

参照图2以及图3,本发明的一种遥感图像的安全外包去噪方法的具体工作流程如下:

S1:在本地客户端进行遥感图像拆分处理

遥感图像拆分处理的步骤为:读取遥感图像,设遥感图像的长为im_h,宽为im_w,波段数为im_band_number,按照波段将遥感图像拆分为im_band_number个图像,分别读取各个波段的16位深的灰度值。

S2:在本地客户端进行遥感图像随机排列

选取一个波段的遥感图像,对其进行随机排列,其步骤如下:

S21:生成一个长度为im_h×im_w的随机数序列,并记录其索引顺序为索引顺序A1;

S22:将这个随机数序列按照从小到大的顺序进行排列,并记录其索引顺序为索引顺序A2;

S23:根据索引顺序A1和索引顺序A2,得到图像置换数列和图像恢复数列;

S24:对图像进行置换,其具体过程如下,

S241:利用S23的图像进行随机排列的数列对遥感图像进行块置换;

S242:图像的16位深灰度值数组为im_array,获取以im_array[m,n]为中心的d×d大小的矩阵块,并将矩阵块转化为一行;

S243:将数组im_array中的所有点重复步骤S242,最终获得一个新数组;

S244:利用图像置换数列对S243中的新数组进行行置换,再次得到新数组;

S245:对S244中的新数组,即完成行置换的数组,进行变维操作,得到一个三维数组im_block_permutation_array,该数组的长为im_h,宽为im_w,高为d2

S25:利用图像置换数列对遥感图像进行像素置换,得到一个二维数组im_pixel_permutation_array,该数组的长为im_h,宽为im_w。

S3:在本地客户端进行遥感图像Johnson–Lindenstrauss转换

参照图4,对完成块置换的结果进行Johnson–Lindenstrauss转换,即将每一个1×d2的向量压缩成一个1×k的向量,得到一个三维数组im_JL_array,该数组的长为im_h,宽为im_w,高为k,其步骤如下,

S31:随机生成一个服从平均值为0,方差为1/k的高斯分布的d2×k的矩阵P;

S32:使用三维数组im_block_permutation_array,利用数组中的[m,n,0]、[m,n,1]、……、[m,n,d2-2]、[m,n,d2-1],组成一个行矩阵α;

S33:随机生成一个服从平均值为0,方差为ζ的高斯分布的1×k的矩阵Δ;

S34:计算αP得到矩阵Y;

S35:计算Y+Δ得到α′;

S36:得到三维数组im_JL_array,即im_JL array[m,n,0]=α′[0,0],im_JL array[m,n,1]=α′[0,1],……,im_JL array[m,n,k-2]=α′[0,k-2],im_JL array[m,n,k-1]=α′[0,k-1]。

S4:在本地客户端进行遥感图像Paillier加密

对二维数组im_pixel_permutation_array进行paillier加密,得到一个二维数组im_paillier_array,该数组的长为im_h,宽为im_w,其具体步骤如下,

S41:选取两个随机素数p、q,并根据计算公式N=pq,得出N的值;

S42:计算出paillier加密参数λ和g,得到paillier加密的公钥是(N,g),私钥是λ;

S43:计算gm的值,m∈[0,65535],并把所有结果保存在第一个表;

S44:随机生成65536个随机数r,计算(gN)r的值,并把所有结果保存在第二个表;

S45:对于二维数组的点im_pixel_permutation_array[i,j],从第二个表中查找m的值等于该点对应的gm的值;

S46:从第二个表中随机抽取5个不同的(gN)r的值,即(gN)r1,(gN)r2,(gN)r3,(gN)r4,(gN)r5

S47:im_paillier_array[i,j]=gm(gN)r1(gN)r2(gN)r3(gN)r4(gN)r5mod N2

S48:将二维数组im_pixel_permutation_array所有的点重复步骤S45-S47,得到数组im_paillier_array。

S5:在云端进行遥感图像非局部去噪

对数组im_JL array和im_paillier_array进行非局部去噪,得到一个二维数组im_paillier_result_array,该数组的长为im_h,宽为im_w,其具体步骤如下,

S51:选取h1的值,h1为进行非局部去噪的滤波参数;

S52:计算A的值,A为放大倍数,计算公式为A=27×im_h×im_w;

S53:用im_JL array[m,n,0],im_JL_array[m,n,1],……,im_JL_array[m,n,k-2],im_JL array[m,n,k-1]组成一个行向量,记为V(m,n);

S54:用im_JL_array[i,j,0],im_JL_array[i,j,1],……,im_JL_array[i,j,k-2],im_JL_array[m,n,k-1]组成一个行向量,记为V(i,j);

S55:计算os_dis_square[i,j]的值,os_di_square[i,j]为像素点i和像素点j之间的欧式距离的平方,计算公式为

S56:计算dis[i,j]的值,计算公式为

S57:计算Z的值,计算公式为其中Ω为整个图像;

S58:计算Q[i,j]的值,计算公式为

S59:计算W[i,j]的值,计算公式为

S510:确定W_number的值;

S511:确定os_dis_square数组中第W_number的值为dis_square,并计算h2的值,h2为进行非局部去噪的滤波参数,计算公式为

S512:将os_dis_square[i,j]与square进行比较,若os_dis_square[i,j]>square,则W[i,j]=0,若os_dis_square[i,j]<square,则

S513:计算im_paillier_result_array[i]的值,计算公式为其中Ω为整个图像;

S514:将数组im_paillier_result_array中的所有点重复步骤S53-S513,将数组im_paillier_array中的所有点重复步骤S54-S59、S512;

S515:得到数组im_paillier_result_array。

S6:在本地客户端进行遥感图像Paillier解密

利用私钥对二维数组im_paillier_result_array进行Paillier解密,得到一个二维数组im_permutation_result_array,该数组的长为im_h,宽为im_w,其具体步骤如下,

S61:计算U的值,计算公式为

S62:对于二维数组中的点im_paillier_result_array[i,j],计算其对应为c的NL的值,计算公式为

S63:

S64:将数组im_paillier_result_array的所有点重复S62-S63,得到数组im_permutation_result_array。

S7:在本地客户端进行遥感图像恢复排列

遥感图像恢复排列的步骤为:利用图像恢复数列,对数组im_permutation_result_array进行遥感图像的像素置换恢复,得到一个二维数组im_result_array,该数组的长为im_h,宽为im_w。

S8:在本地客户端进行遥感图像合并处理

遥感图像合并处理的步骤为:将每一个波段的遥感图像重复S2-S7,进行合并处理,得到完成去噪后的完整遥感图像。

本发明的一种遥感图像的安全外包去噪方法的优点在于:将在本地拆分并加密后的遥感图像放在云端进行图像去噪处理;不出现信息泄漏问题;只需在本地进行解密和合并后就可以得到该遥感图像完成去噪后的图像;可以提高原图像的PSNR的值。

实施例3

本发明的一种遥感图像的安全外包去噪方法的具体实施过程如下:

S1:在本地客户端进行遥感图像拆分处理

读取Landsat8卫星的遥感图像,该遥感图像的长为512,宽为512,波段数为11,按照波段将遥感图像拆分为11个图像,并读取各个波段的16位深的灰度值。

S2:在本地客户端进行遥感图像随机排列

选取一个波段的遥感图像,对其进行随机排列,其步骤如下:

S21:生成一个长度为512×512的随机数序列,并记录其索引顺序为索引顺序A1;

S22:将这个随机数序列按照从小到大的顺序进行排列,并记录其索引顺序为索引顺序A2;

S23:根据索引顺序A1和索引顺序A2,得到图像置换数列和图像恢复数列;

S24:对图像进行置换,其具体过程如下,

S241:利用S23的图像进行随机排列的数列对遥感图像进行块置换;

S242:图像的16位深灰度值数组为im_array,获取以im_array[m,n]为中心的5×5大小的矩阵块,并将矩阵块转化为一行;

S243:将数组im_array中的所有点重复步骤S242,最终获得一个新数组;

S244:利用图像置换数列对S243中的新数组进行行置换,再次得到新数组;

S245:对S244中的新数组,即完成行置换的数组,进行变维操作,得到一个三维数组im_block_permutation_array,该数组的长为512,宽为512,高为25;

S25:利用图像置换数列对遥感图像进行像素置换,得到一个二维数组im_pixel_permutation_array,该数组的长为512,宽为512。

S3:在本地客户端进行遥感图像Johnson–Lindenstrauss转换

对完成块置换的结果进行Johnson–Lindenstrauss转换,即将每一个1×25的向量压缩成一个1×k的向量,得到一个三维数组im_JL_array,该数组的长为512,宽为512,高为k,其步骤如下,

S31:随机生成一个服从平均值为0,方差为1/k的高斯分布的d2×k的矩阵P;

S32:使用三维数组im_block_permutation_array,利用数组中的[m,n,0]、[m,n,1]、……、[m,n,23]、[m,n,24],组成一个行矩阵α;

S33:随机生成一个服从平均值为0,方差为ζ的高斯分布的1×k的矩阵Δ;

S34:计算α×P得到矩阵Y;

S35:计算Y+Δ得到α′;

S36:得到三维数组im_JL_array,即im_JL_array[m,n,0]=α′[0,0],im_JL_array[m,n,1]=α′[0,1],……,im_JL_array[m,n,k-2]=α′[0,k-2],im_JL_array[m,n,k-1]=α′[0,k-1]。

S4:在本地客户端进行遥感图像Paillier加密

对二维数组im_pixel_permutation_array进行paillier加密,得到一个二维数组im_paillier_array,该数组的长为512,宽为512,其具体步骤如下,

S41:选取两个随机素数p、q,并根据计算公式N=pq,得出N的值;

S42:计算出paillier加密参数λ和g,得到paillier加密的公钥是(N,g),私钥是λ;

S43:计算gm的值,m∈[0,65535],并把所有结果保存在第一个表;

S44:随机生成65536个随机数r,计算(gN)r的值,并把所有结果保存在第二个表;

S45:对于二维数组的点im_pixel_permutation_array[i,j],从第二个表中查找m的值等于该点对应的gm的值;

S46:从第二个表中随机抽取5个不同的(gN)r的值,即(gN)r1,(gN)r2,(gN)r3,(gN)r4,(gN)r5

S47:im_paillier_array[i,j]=gm(gN)r1(gN)r2(gN)r3(gN)r4(gN)r5mod N2

S48:将二维数组im_pixel_permutation_array所有的点重复步骤S45-S47,得到数组im_paillier_array。

S5:在云端进行遥感图像非局部去噪

对数组im_JL array和im_paillier_array进行非局部去噪,得到一个二维数组im_paillier_result_array,该数组的长为512,宽为512,其具体步骤如下,

S51:选取h1的值为384,h1为进行非局部去噪的滤波参数;

S52:计算A的值,A为放大倍数,计算公式为A=27×512×512;

S53:用im_JL array[m,n,0],im_JL_array[m,n,1],……,im_JL_array[m,n,k-2],im_JL array[m,n,k-1]组成一个行向量,记为V(m,n);

S54:用im_JL_array[i,j,0],im_JL_array[i,j,1],……,im_JL_array[i,j,k-2],im_JL_array[m,n,k-1]组成一个行向量,记为V(i,j);

S55:计算os_dis_square[i,j]的值,os_di_square[i,j]为像素点i和像素点j之间的欧式距离的平方,计算公式为

S56:计算dis[i,j]的值,计算公式为

S57:计算Z的值,计算公式为其中Ω为整个图像;

S58:计算Q[i,j]的值,计算公式为

S59:计算W[i,j]的值,计算公式为

S510:确定W_number为128;

S511:确定os_dis_square数组中第W_number的值为dis_square,并计算h2的值,h2为进行非局部去噪的滤波参数,计算公式为

S512:将os_dis_square[i,j]与square进行比较,若os_dis_square[i,j]>square,则W[i,j]=0,若os_dis_square[i,j]<square,则

S513:计算im_paillier_result_array[i]的值,计算公式为其中Ω为整个图像;

S514:将数组im_paillier_result_array中的所有点重复步骤S53-S513,将数组im_paillier_array中的所有点重复步骤S54-S59、S512;

S515:得到数组im_paillier_result_array。

S6:在本地客户端进行遥感图像Paillier解密

利用私钥对二维数组im_paillier_result_array进行Paillier解密,得到一个二维数组im_permutation_result_array,该数组的长为512,宽为512,其具体步骤如下,

S61:计算U的值,计算公式为

S62:对于二维数组中的点im_paillier_result_array[i,j],计算其对应像素点c的NL的值,计算公式为

S63:

S64:将数组im_paillier_result_array的所有点重复S62-S63,得到数组im_permutation_result_array。

S7:在本地客户端进行遥感图像恢复排列

遥感图像恢复排列的步骤为:利用图像恢复数列,对数组im_permutation_result_array进行遥感图像的像素置换恢复,得到一个二维数组im_result_array,该数组的长为512,宽为512。

S8:在本地客户端进行遥感图像合并处理

遥感图像合并处理的步骤为:将每一个波段的遥感图像重复S2-S7,进行合并处理,得到完成去噪后的完整遥感图像。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明方法的前提下,还可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1