一种Hadamard矩阵多尺度排序方法和系统与流程

文档序号:14950623发布日期:2018-07-17 22:28阅读:241来源:国知局

本发明属于图像处于技术领域,尤其涉及一种hadamard矩阵多尺度排序方法和系统。



背景技术:

在计算关联成像、计算鬼成像、计算量子成像,单像素相机,结构光照明成像或三维单像素激光雷达成像等技术中,编码矩阵的选择与优化决定着图像重建速度和图像信噪比,是上述技术领域的核心技术和关键技术。编码矩阵的选择直接影响重建算法的执行效率和图像重建效果,并且算法的优化也需要考虑编码矩阵的性质。



技术实现要素:

本发明的技术解决问题:克服现有技术的不足,提供一种hadamard矩阵多尺度排序方法和系统,以解决现有编码不能同时兼顾快速成像和高信噪比成像的问题。

为了解决上述技术问题,本发明公开了一种hadamard矩阵多尺度排序方法,包括:

步骤s1,初始化参数,设置i=1,m=22n,n=4,5,6…,n为正整数,构建m行m列的hadamard矩阵;

步骤s2,抽取hadamard矩阵的每行或列向量后进行归一化,将每行或每列向量元素重新排列形成2n行2n列的方阵hi;

步骤s3,将方阵hi进行n层二维haar小波分解,获得系数矩阵ha,取系数矩阵ha绝对值|ha|,并求和∑|ha|,记为:sa(i)=∑|ha|;将i记入顺序序号值i(i);其中,向量sa和向量i均是m×1维向量;

步骤s4,存储sa(i)与i(i)的值分别到向量sa和向量i中;

步骤s5,取i=i+1,判断i是否大于m;

步骤s6,若i≤m,则重复执行步骤s2~s4,直至i>m;

步骤s7,对向量sa中的元素按从小到大的顺序排列,得到新序列r;

步骤s8,按新序列r重新抽取hadamard矩阵每行或每列向量后进行归一化,遍历m次得到m个二维2n×2n方阵rhi,rhi为按新序列r顺序产生的第i个多尺度编码矩阵。

在上述hadamard矩阵多尺度排序方法中,抽取hadamard矩阵的每行或列向量后进行归一化,将每行或每列向量元素重新排列形成2n行2n列的方阵hi,包括:

读取hadamard矩阵的第i行,并归一化到[0,1]区间,得到向量ai;

依次读取ai第1至第2n个元素作为方阵hi的第一行,第2n+1至第2n+1个元素作为方阵hi的第二行,直至读取第(2n-1)×2n+1至22n个元素作为方阵hi的第2n行,遍历m个向量ai后得到二维2n×2n方阵hi,其中,i=1,2,3…m。

在上述hadamard矩阵多尺度排序方法中,对向量sa中的元素按从小到大的顺序排列,得到新序列r,包括:

读取步骤s4中存储m×1维向量sa和m×1维向量i;

对向量sa的值按从小到大排序,以及,按初始顺序对应地调整向量i中与sa(i)对应的i(i)值的先后顺序,保持初始对应关系;其中,若sa(i)值与sa(i-1)或sa(i+1)值相等,则sa(i)、sa(i-1)或sa(i+1)值按照初始顺序不变,排序后得到新序列r;

设置不同的m值与n值,得到不同长度的新序列r的序列值。

相应的,本发明还公开了一种hadamard矩阵多尺度排序系统,包括:

初始化模块,用于初始化参数,设置i=1,m=22n,n=4,5,6…,n为正整数,构建m行m列的hadamard矩阵;

归一化模块,用于抽取hadamard矩阵的每行或列向量后进行归一化,将每行或每列向量元素重新排列形成2n行2n列的方阵hi;

小波分解模块,用于将方阵hi进行n层二维haar小波分解,获得系数矩阵ha,取系数矩阵ha绝对值|ha|,并求和∑|ha|,记为:sa(i)=∑|ha|;将i记入顺序序号值i(i);其中,向量sa和向量i均是m×1维向量;

存储模块,用于存储sa(i)与i(i)的值分别到向量sa和向量i中;

计数模块,用于取i=i+1,判断i是否大于m;

选择模块,用于在i≤m时,返回归一化模块执行,直至i>m;

排列模块,用于对向量sa中的元素按从小到大的顺序排列,得到新序列r;

遍历模块,用于按新序列r重新抽取hadamard矩阵每行或每列向量后进行归一化,遍历m次得到m个二维2n×2n方阵rhi,rhi为按新序列r顺序产生的第i个多尺度编码矩阵。

本发明具有以下优点:

(1)在本发明中,生成的编码矩阵图案,按多分辨率尺度由低到高依次排列,这在对物体成像过程中,可获得分辨率从低到高的图像,在实际应用中获得满足要求的图像后即可随时终止测量。

(2)在本发明中,多尺度排序编码中只包括0、1两种矩阵元素,且矩阵元0、1的个数相等,可用于光学差分测量,有效抑制环境噪声影响,鲁棒性强,在工程上易于实现。例如,dmd(digitalmicro-mirrordevice,dmd,数字微镜阵列)器件有数百万个微镜,微镜尺寸在微米量级,可以在±12°两个方向切换,切换速度可达32khz,实现对光场的“开”,“关”控制,在物理上可等效为“开”对应矩阵元1,“关”对应矩阵元0。

(3)在本发明中,多尺度编码在应用于计算关联成像、计算鬼成像、计算量子成像,单像素相机,结构光照明成像或三维单像素激光雷达成像等技术时,无需存储编码矩阵,可通过快速hadamard变换、关联迭代或压缩感知算法实现快速成像。

附图说明

图1是本发明实施例中一种hadamard矩阵多尺度排序方法的步骤流程图;

图2是本发明实施例中一种256行hadamard矩阵生成的16×16编码图案;

图3是本发明实施例中一种向量sa的数据值绘图;

图4是本发明实施例中一种新序列r的数据值绘图;

图5是本发明实施例中一种基于新序列r生成的16×16多尺度编码矩阵;

图6是本发明实施例中一种方阵h2数据对应的显示图像。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明公共的实施方式作进一步详细描述。

本发明公开了一种hadamard矩阵多尺度排序方法和系统,可以生成多尺度调制编码矩阵,用于计算关联成像、计算鬼成像、计算量子成像,单像素相机,结构光照明成像或三维单像素激光雷达成像等技术,提升上述计算成像系统的图像重建速度和成像信噪比。

参照图1,示出了本发明实施例中一种hadamard矩阵多尺度排序方法的步骤流程图。在本实施例中,hadamard矩阵多尺度排序方法,包括:

步骤s1,初始化参数,设置i=1,m=22n,n=4,5,6…,n为正整数,构建m行m列的hadamard矩阵。

步骤s2,抽取hadamard矩阵的每行或列向量后进行归一化,将每行或每列向量元素重新排列形成2n行2n列的方阵hi。

步骤s3,将方阵hi进行n层二维haar小波分解,获得系数矩阵ha,取系数矩阵ha绝对值|ha|,并求和∑|ha|,记为:sa(i)=∑|ha|;将i记入顺序序号值i(i);其中,向量sa和向量i均是m×1维向量。

步骤s4,存储sa(i)与i(i)的值分别到向量sa和向量i中。

步骤s5,取i=i+1,判断i是否大于m。

步骤s6,若i≤m,则重复执行步骤s2~s4,直至i>m。

步骤s7,对向量sa中的元素按从小到大的顺序排列,得到新序列r。

步骤s8,按新序列r重新抽取hadamard矩阵每行或每列向量后进行归一化,遍历m次得到m个二维2n×2n方阵rhi,rhi为按新序列r顺序产生的第i个多尺度编码矩阵。

在本发明的一优选实施例中,抽取hadamard矩阵的每行或列向量后进行归一化,将每行或每列向量元素重新排列形成2n行2n列的方阵hi,具体可以包括:读取hadamard矩阵的第i行,并归一化到[0,1]区间,得到向量ai;依次读取ai第1至第2n个元素作为方阵hi的第一行,第2n+1至第2n+1个元素作为方阵hi的第二行,直至读取第(2n-1)×2n+1至22n个元素作为方阵hi的第2n行,遍历m个向量ai后得到二维2n×2n方阵hi,其中,i=1,2,3…m。

在本发明的一优选实施例中,对向量sa中的元素按从小到大的顺序排列,得到新序列r,具体可以包括:读取步骤s4中存储m×1维向量sa和m×1维向量i;对向量sa的值按从小到大排序,以及,按初始顺序对应地调整向量i中与sa(i)对应的i(i)值的先后顺序,保持初始对应关系;其中,若sa(i)值与sa(i-1)或sa(i+1)值相等,则sa(i)、sa(i-1)或sa(i+1)值按照初始顺序不变,排序后得到新序列r;设置不同的m值与n值,得到不同长度的新序列r的序列值。

基于上述实施例,下面结合一个具体实例对所述hadamard矩阵多尺度排序方法进行详细说明。

图2,示出了本发明实施例中一种256行hadamard矩阵生成的16×16编码图案。图3,示出了本发明实施例中一种向量sa的数据值绘图。图4,示出了本发明实施例中一种新序列r的数据值绘图。图5,示出了本发明实施例中一种基于新序列r生成的16×16多尺度编码矩阵。

(1.1)初始化参数,设置i=1,m=22n,n=4,5,6…,n为正整数,如:设i=1,n=4,则m=256。

在本实施例中,构建m行m列的hadamard矩阵的具体实施过程可简单举例说明,例如,产生2×2的hadamard矩阵k2,如公式(1)所示:

若产生m=4的hadamard矩阵,则需要用到公式(2):

生成m=4的hadamard矩阵k4,根据公式(2),n=2,

其中,需要说明的是,在实际应用过程中,n大于等于4,此处令m=4只是便于说明问题,若要生成更大的hadamard矩阵,按公式(2)依次类推即可得到任意2n阶hadamard矩阵。其中,n=4,5,6…中的任意一个整数。

(1.2)读取步骤(1.1)生成的hadamard矩阵的第i行,i属于整数;并归一化到区间[01],得到m个得到向量ai,依次读取ai第1至第2n个元素作为方阵hi的第一行,第2n+1至第2n+1个元素作为方阵hi的第二行,以此类推,直至读取第(2n-1)×2n+1至22n个元素作为方阵hi的第2n行,遍历m个向量ai后得到二维24×24方阵hi。

举例说明例,如m=256,n=4,对应256×256的hadamard矩阵第二行,其归一化后,得a2=

[101010101010101010101

0101010101010101010101

0101010101010101010101

0101010101010101010101

0101010101010101010101

0101010101010101010101

0101010101010101010101

0101010101010101010101

0101010101010101010101

0101010101010101010101

0101010101010101010101

010101010101010]

转换成二维16×16方阵h2=

[1010101010101010;

1010101010101010;

1010101010101010;

1010101010101010;

1010101010101010;

1010101010101010;

1010101010101010;

1010101010101010;

1010101010101010;

1010101010101010;

1010101010101010;

1010101010101010;

1010101010101010;

1010101010101010;

1010101010101010;

1010101010101010]

将上述方阵h2数据显示成图像格式(如图6,示出了本发明实施例中一种方阵h2数据对应的显示图像。其中,图6中,白色灰度值为1,黑色灰度值为0。

(1.3)将方阵hi进行n层二维haar小波分解,获得系数矩阵ha,取系数矩阵ha绝对值|ha|,并求和∑|ha|,记为:sa(i)=∑|ha|,将i记入顺序序号值i(i);。

在本实施例中,向量sa和向量i均是m×1维向量;例如,n=4,则进行4层haar小波分解,矩阵ha对应24×24方阵,对矩阵元每个元素取绝对值,求和遍历每个元素,共256个元素。

(1.4)存储sa(i)与i(i)的值分别到向量sa和向量i中,记为{sa(i),i(i)}。如n=4时,向量sa和向量i各有m=28=256个元素值;

(1.5)i=i+1,判断i是否大于m。如,步骤(1.4)中,i=1,则本步骤执行完将得到i=2,判断i=2>m=28,2>28结果为否。

(1.6)如果步骤(1.5)结果为否,那么重复步骤(1.2)、(1.3)和(1.4),直到步骤(1.5)中的条件成立,即i>m。如,以256×256的hadamard矩阵为例,当i=256+1时,i>m=256成立,此时步骤(1.6)已经重得执行256次,将得到如图2所示的按初始(原始)hadamard列顺序生成的图案。

(1.7)读取步骤(1.4)中存储的m×1维向量sa和m×1维向量i,对向量sa的值按从小到大排序,同时按初始(原始)顺序对应地调整一维向量i中与sa(i)对应的i(i)值顺序,保持按初始(原始)对应关系不变;如果sa(i)值与sa(i-1))或sa(i+1)值相等,则sa(i)、sa(i-1)或sa(i+1)值按照初始(原始)顺序不变,排序后将得到并输出新序列r,即所述的hadamard矩阵多尺度排序序号。

在本实施例中,(1.7)具体实施过程中,如,对于256×256的hadamard矩阵,取sa(i)与i(i)遍历i=1,2,3,…,256的各个值,对向量sa中各值由于到大排序后,以i=[1,2,3,…,256]为变量绘图,可得如图3所示结果。此时,对应的向量i排序,从i(i)=i,i=[1,2,3,…,256],变为新序列r。

其中,r=

[19129137513656973771331411931972012053711153335373941434547677175799799101103105107109

111131135139143161163165167169171173175195199203

207225227229231233235237239246810121416

17181920212223242526272829303132343638404244

46484950515253545556575859606162636466687072

747678808182838485868788899091929394959698

100102104106108110112113114115116117118119120

121122123124125126127128130132134

136138140142144145146147148149150

151152153154155156157158159160162

164166168170172174176177178179180

181182183184185186187188189190191

192194196198200202204206208209210

211212213214215216217218219220221

222223224226228230232234236238240

241242243244245246247248249250251

252253254255256]。

新序列r以i=[1,2,3,…,256]为变量绘图,可得到新序列r的图形,如图4所示。

(1.8)按(1.1)~(1.7),设置不同m值与n值,将得到不同长度新序列r的序列值;根据不同长度的序列值,按(1.1)~(1.2)即可用于生成多层次的、多尺度编码图案。如,对于256×256的hadamard矩阵,按新序列r的顺序对编码重新排序生成rhi序列,结果如图5所示,对比图2与图5,可发现图5编码图案与图2不同,图5的图案已按新序列r的顺序形成多尺度分辨率的编码特征。

在上述实施例的基础上,本发明还公开了一种hadamard矩阵多尺度排序系统,包括:

初始化模块,用于初始化参数,设置i=1,m=22n,n=4,5,6…,n为正整数,构建m行m列的hadamard矩阵。

归一化模块,用于抽取hadamard矩阵的每行或列向量后进行归一化,将每行或每列向量元素重新排列形成2n行2n列的方阵hi。

小波分解模块,用于将方阵hi进行n层二维haar小波分解,获得系数矩阵ha,取系数矩阵ha绝对值|ha|,并求和∑|ha|,记为:sa(i)=∑|ha|;将i记入顺序序号值i(i);其中,向量sa和向量i均是m×1维向量。

存储模块,用于存储sa(i)与i(i)的值分别到向量sa和向量i中。

计数模块,用于取i=i+1,判断i是否大于m。

选择模块,用于在i≤m时,则返回归一化模块执行,直至i>m。

排列模块,用于对向量sa中的元素按从小到大的顺序排列,得到新序列r。

遍历模块,用于按新序列r重新抽取hadamard矩阵每行或每列向量后进行归一化,遍历m次得到m个二维2n×2n方阵rhi,rhi为按新序列r顺序产生的第i个多尺度编码矩阵。

对于系统实施例而言,由于其与方法实施例相对应,所以描述的比较简单,相关之处参见方法实施例部分的说明即可。

综上所述,在本发明中,生成的编码矩阵图案,按多分辨率尺度由低到高依次排列,这在对物体成像过程中,可获得分辨率从低到高的图像,在实际应用中获得满足要求的图像后即可随时终止测量。其次,多尺度排序编码中只包括0、1两种矩阵元素,且矩阵元0、1的个数相等,可用于光学差分测量,有效抑制环境噪声影响,鲁棒性强,在工程上易于实现。例如,dmd(digitalmicro-mirrordevice,dmd,数字微镜阵列)器件有数百万个微镜,微镜尺寸在微米量级,可以在±12°两个方向切换,切换速度可达32khz,实现对光场的“开”,“关”控制,在物理上可等效为“开”对应矩阵元1,“关”对应矩阵元0。此外,多尺度编码在应用于计算关联成像、计算鬼成像、计算量子成像,单像素相机,结构光照明成像或三维单像素激光雷达成像等技术时,无需存储编码矩阵,可通过快速hadamard变换、关联迭代或压缩感知算法实现快速成像。

本说明中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。

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