一种基于并行计算算法的图像融合拼接方法与流程

文档序号:17093867发布日期:2019-03-13 23:41阅读:389来源:国知局
一种基于并行计算算法的图像融合拼接方法与流程

本发明涉及一种基于并行计算算法的图像融合拼接方法,属于图像处理技术领域。



背景技术:

图像拼接通常包含有图像预处理、图像配准和图像融合三个基本步骤。图像预处理主要指对图像进行几何畸变校正和噪声点的抑制等处理工作,让参考图像和待拼接图像没有明显的几何畸变。

而图像配准则是图像拼接中最为关键的一步,图像配准方法的优劣则直接关系到了图像配准的效率和精度。目前最比较常用的配准方法大致可以划分为区域配准法和特征配准法两大类。

基于区域相关配准法,其特点是从参考图像和待配准图像中选择一块具有相同尺寸大小的区域,采用互相关法、相位相关法和归一化相关法等算法,处理思想简单,可以借助快速傅里叶变换(fft)等方法计算互相关系数,从而提高其计算速度以及缩短处理时间,但是它受图像灰度变化的影响较大,对旋转和畸变图像配准误差较大。

而基于特征相关配准法,则是以图像的像元值为基础,推导出参考图像和待配准图像上具有点、线、区域等其他特征因子,具体的实现方法有空间关系法、不变描述算子法和统计概率法等等,特点是配准精度高,但是计算过程复杂,实现难度高。

在遥感图像技术领域中,特别是近几年国产高分系列卫星的发射成功,使得国产遥感图像数据在高分辨率、高光谱等方面的数据采集上获得了极大的提升,为国产航天遥感图像的应用提供了广阔的前景。

但是受一景遥感图像所能覆盖的区域范围大小的限制,特别是在使用高分辨率遥感图像时,对于需要在一定行政区域、地理分区、流域等较大区域范围内去考察各种资源的现状和变化情况时,仅仅一景遥感图像已经远远不能满足实际应用中的要求,而将多景在空间位置上具有一定重合率的图像序列,通过融合拼接技术合成为一景具有无缝、宽视场角、包含有各个图像序列信息的新图像,已经成为遥感图像在实际应有中的一个基本要求。



技术实现要素:

为了克服现有技术的不足,本发明提供一种基于并行计算算法的图像融合拼接方法。

本发明提出的融合拼接方法,以空间换时间的方式,首先对多景图像进行重采样,使得多景图像具有相同的空间范围,从而建立多景图像在空间和数据上的一一对应的像对关系,再对图像数据进行分组,对每个分组数据通过并行计算的方式,对待融合拼接像元对逐个进行对比计算,实现将多景具有部分区域重叠的图像,每次融合拼接两景图像,逐步融合拼接成为一景视角更宽阔、信息更丰富、包含有多景图像信息的一景新图像。

一种基于并行计算算法的图像融合拼接方法,含有以下步骤;

步骤1、设置拼接方式;

步骤2、获取两景待融合拼接图像基本信息;

步骤3、通过数据重采样创建两景图像的空间对应关系;

步骤4、进行两景图像的融合拼接;

步骤5、保存融合拼接后图像文件;

步骤6、结束融合拼接。

步骤2含有以下步骤;通过对两景图像的空间位置进行计算,建立两个能够完全覆盖两景图像最大范围的图像xtx1、xtx2数据区,将图像tx1、tx2重采样到图像xtx1、xtx2数据区中。其特征在于通过以空间换时间的形式,即使用更多的计算机硬件资源空间,换取算法在逻辑关系上的简单化、数据结构关系上的分散性和统一性;最重要的是为采用数据并行计算模式下,开展并行计算算法的程序结构设计上提供了可行性,并且对程序结构优化和提高系统稳健性提供了可靠的保证。

步骤3含有以下步骤;在图像xtx1、xtx2数据区建立后,这两景图像中的所有像元就在空间和数据关系上形成了一一对应的像对关系;由于像对关系的建立,再进行图像融合拼接计算时,就不需要在考虑两景图像在空间位置关系上的影响,可以直接面对每一个像对,进行融合拼接计算处理。

步骤4含有以下步骤;在建立像对的基础上,对于在融合拼接中没有重叠的部分图像,计算出两景图像间的位置关系,直接将待拼接图像拷贝到参考图像中,而不需要进行其他计算;而对于重叠部分范围内的图像,则要按照融合拼接方式要求,对待融合拼接像元对,逐个进行对比计算决定采用那个像元进行融合拼接,再完成所有待融合拼接像元对的融合拼接处理后,就完成了两景图像的融合拼接工作。

还含有以下步骤;如果要对多个具有重叠的图像进行融合拼接,只需按照每次融合拼接两景图像,逐步将所有多个图像逐步融合拼接成为一景视角更宽阔、信息更丰富、包含有多景图像信息的一景新图像。

步骤5含有以下步骤;在建立像对的基础上,可以对图像数据按照行(或列、数据块)进行数据分组,对每个分组数据进行并行计算,实现对图像的高效、快速处理。

本发明的优点是:

本发明具有充分利用计算机技术硬件资源,采用以空间换时间的技术思路,首先对两景图像进行重采样,使两景图像具有相同的空间范围,从而建立两景图像在空间和数据上的一一对应的像对关系,改变了两景图像在空间和数据上的相互分离,算法逻辑关系复杂、程序结构复杂的现状。

由于这些像对关系的建立,解决了数据并行计算模式中的三个在关键问题,一是数据的可分散性和独立性,避免了在并行计算中数据读写冲突所造成的系统崩溃问题;二是使得数据处理计算算法也具有独立性和可复用性;三是可以对图像数据进行分组,对分组数据调用相同的计算处理方法,实现并行计算的目的。

并且这些对应关系的建立还带来了三个好处,一是极大地简化了算法的逻辑关系复杂性;二是使得程序结构更加简单清晰;三是使得系统的稳健性得到了极大的增强。

由于建立了两景图像中的每个像元在空间和数据表间的一一对应关系。在本发明中通过将两景图像数据按行(或列,或者数据块)的方式进行数据分组,并根据计算资源的具体情况,建立多线程或多任务的方式同步启动相应的计算处理流程进行并行计算,实现高速高效的图像融合拼接处理能力。

本发明所提出的以空间换时间的技术思路,使得它特别适合于应用在面向数据具有矩阵特性的图像数据、扫描数据、点云数据等方面进行数据处理和计算;而且该算法还特别适合于在具有并行计算特性、并且内存资源丰富的gpu、fpga硬件计算加速卡上进行并行计算应用移植,达到在单台计算机上实现高性能计算平台所具备的超级计算能力。

本发明提出了以空间换时间的技术思想,通过建立两景图像间的空间和由图像数据上的一一对应关系,达到适合并行计算、简化算法逻辑关系、强化程序结构、自动化操作、高效、高速的数据处理能力是本发明的核心技术。

附图说明

当结合附图考虑时,通过参照下面的详细描述,能够更完整更好地理解本发明以及容易得知其中许多伴随的优点,但此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定,如图其中:

图1为本发明两景图像叠加后在空间位置上的重叠关系示意图。

图2为本发明的图像融合拼接总体流程示意图。

图3为本发明的图像tx1、tx2拼接方式处理流程示意图。

图4为本发明的创建融合拼接图像数据缓存区xtx2流程示意图。

图5为本发明的图像xtx2中没有重叠部分元数据拷贝到图像xtx1流程示意图。

图6为本发明的图像xtx1、xtx2融合区域融合拼接流程示意图。

图7为本发明的图像xtx1、xtx2融合拼接方式处理流程示意图。

下面结合附图和实施例对本发明进一步说明。

具体实施方式

显然,本领域技术人员基于本发明的宗旨所做的许多修改和变化属于本发明的保护范围。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当称元件、组件被“连接”到另一元件、组件时,它可以直接连接到其他元件或者组件,或者也可以存在中间元件或者组件。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与所属领域中的普通技术人员的一般理解相同的意义。

为便于对实施例的理解,下面将结合做进一步的解释说明,且各个实施例并不构成对本发明的限定。

实施例1:如图1、图2、图3、图4、图5、图6及图7所示,一种基于并行计算算法的图像融合拼接方法,含有以下步骤;

步骤1、设置拼接方式;

步骤2、获取两景待融合拼接图像基本信息;

步骤3、通过数据重采样创建两景图像的空间对应关系;

步骤4、进行两景图像的融合拼接;

步骤5、保存融合拼接后图像文件;

步骤6、结束融合拼接。

还含有以下步骤;

步骤1中对已经完成校正、配准后的单波段两景图像进行融合拼接,并且为了提高程序的效率、减少无效的控制和判断工作,约定在配准后的图像中处于背景位置的像元,称为无效像元,其像元值设置为0;而有效像元的像元值则要求为大于0的任意值。

步骤3中以融合拼接后图像的最大空间范围作为数据模板,创建两个新的图像数据缓存区;通过对两景图像进行空间坐标重采样的方法,将参考图像tx1和待融合拼接图像tx2重采样到这个数据模板中,形成两个新的图像xtx1和xtx2数据缓存区。

而新形成的参考图像xtx1和待融合拼接图像xtx2,它们在空间地理坐标、及由像元构造的二维表上就建立了非常完整的对应关系,即每个像元在空间上和数据上都具有一一对应关系,只要将它们进行叠加操作,并对其中具有重叠部分的区域进行融合拼接计算,就可以完成两景图像的融合拼接计算工作。

由于经过重采样的图像xtx1和xtx2,它们在数据大小、格式、类型上完全相同,而且还具有空间地理坐标和数据二维表上的一一对应关系,这样就可以对这些图像数据按照图像的行方向、或列方向(或数据块方式)进行数据分组、用同一个计算流程同步对不同的分组数据进行并行计算,而不会由于图像数据在格式、大小、空间地理坐标等对应关系的不同和差异,而造成并行计算上需要对复杂的逻辑关系处理、使得程序结构设计混乱的情况。

步骤4中对于在两景图像重叠区域内,需要进行特殊的融合拼接计算处理的像元对,也由于数据模板的建立,其重叠区域的边界和范围都表现得非常清晰,对这部分重叠像元对的融合拼接计算,则需要根据融合拼接方式的具体要求,采用上述描述的分组并行计算处理方式,对重叠区域内的每个像元对,进行逐个像元对进行同步并行计算的方式进行处理。

对于需要对多景图像进行融合拼接的应用,在本发明中建议采用每次融合拼接两景相邻图像的方式,逐步将所有需要融合拼接的图像合并成一景具有视角更宽阔、信息更丰富的图像的一种快速图像处理方法。

图1为两景图像叠加显示后在空间位置上具有重叠关系的示意图。从图中可见:

图像tx1的左下角坐标:tx1_x1,tx1_y1,右上角坐标tx1_x2,tx1_y2.

图像tx2的左下角坐标:tx2_x1,tx2_y1,右上角坐标tx2_x2,tx2_y2.

叠加后的图像左下角坐标:tx1_x1,tx1_y1,右上角坐标tx2_x2,tx2_y2.

图像tx1、tx2重叠部分的空间坐标左下角坐标为:tx2_x1,tx2_y1,右上角坐标为tx1_x2,tx1_y2.

而在此发明中所要做就是分为两部分进行操作,一是将没有重叠的区域叠加在一起,二是将图像tx1、tx2中的重叠区域根据拼接方式的要求融合拼接在一起,形成一个新的在空间坐标上包含有两景图像信息的新的图像数据文件。

实施例2:如图1、图2、图3、图4、图5、图6及图7所示,一种基于并行计算算法的图像融合拼接方法,由于一景遥感图像覆盖范围的限制,特别是在采用地面分辨率较高的遥感图像时,对于需要在一定区域范围内从整体的角度去考察各类资源的状况和变化情况,单景图像的局限性就表现的非常明显。

将多景图像融合拼接成一景图像,已经成为遥感图像在实际应用中所必需要进行的一个基本操作流程了。而传统的融合拼接算法都是基于传统的串行计算算法进行的,但对于遥感图像数据而言,随着空间分辨率的提高,单景图像的数据量越来越大,当进行多景图像融合拼接时,受计算机资源和传统串行计算算法的限制,则越来越不能满足人们对图像数据处理速度上的要求,本发明所提出的并行计算算法,由于算法具有逻辑关系简单、算法结构清晰,对于在硬件环境上支持多线程并行计算或具有较多计算资源的分布式计算环境上进行应用,则能够对计算速度的得到极大的提升。而且该算法特别适合于在具有并行计算特性的gpu、fpga计算加速卡上进行移植应用,达到在单台计算机上实现高性能计算平台所具备的超级计算能力。

实施例3:如图1、图2、图3、图4、图5、图6及图7所示,一种基于并行计算算法的图像融合拼接方法,含有以下步骤;

如图2所示,基于并行计算算法的两景图像融合拼接方法总体流程图,

图像拼接开始;

步骤1、设置融合拼接方式;

步骤2、获取图像基本信息;

步骤3、重采样创建两景图像的空间对应关系;

步骤4、进行两景图像的融合拼接;

步骤5、保存融合拼接后图像文件;

步骤6、结束融合拼接。

步骤1的设置图像融合拼接方式步骤如下:

为描述方便只给出了三种融合拼接方式(rhpj_fs)(还包括三种融合拼接以上的融合拼接方式):

步骤1.1、rhpj_fs=1,即参考图像tx1覆盖待拼接图像tx2;

步骤1.2、rhpj_fs=2,待拼接图像tx2覆盖参考图像tx1;

步骤1.3、rhpj_fs=3,采取参考图像tx1像元与待拼接图像tx2像元算数平均值方式进行融合拼接。

在本例中设置rhpj_fs=1,参考图像tx1覆盖待拼接图像tx2。

步骤2的获取图像基本信息流程步骤如下:

步骤2.1获取两景图像的基本参数;

为了描述简单,假设两景图像tx1,tx2的行列数、空间分辨率相同。

步骤2.1.1、获取两景图像的行列数信息,假设图像为1024*1024。即图像的行数(x方向)tx1_hs=tx2_hs=1024,列数(y方向)tx1_hs=tx2_ls=1024;

步骤2.1.2、获取两景图像的空间分辨率,图像像元的地面分辨率为16*16米;dm_fbl=16米。则图像的地面覆盖范围为:x方向长度1024*16米=16384米,y方向长度1024*16米=16384米。

步骤2.1.3、获取图像的空间位置地理坐标信息。图像tx1(地理坐标单位:米)左下角地理坐标(10000,10000);右上角地理坐标(26384,26384).所对应的标识为:左下角坐标(tx1_x1,tx1_y1),右上角坐标(tx1_x2,tx1_y2);

步骤2.1.4、图像tx2(地理坐标单位:米)左下角地理坐标的左下角坐标(25904,10480);右上角地理坐标(42288,26864)。所对应的标识为:(tx2_x1,tx2_y1),右上角坐标(tx2_x2,tx_y2)。

步骤2.1.5、图像叠加后的地理坐标范围:左下角坐标地理坐标(单位:米)(10000,10000),右上角地理坐标(42288,26864);图像x方向长度为:42288-10000=32288米,折合像元数为:32288/16=2018个;图像y方向长度为:26864-10000=16864米,折合像元数为:16864/16=1054个,即融合拼接后的图像行数为:pj_tx_hs=1054,图像列数:pj_tx_ls=2018。

步骤2.1.6、如果两景图像叠加后的空间覆盖范围,既叠加图像的x、y长度不是图像地面分辨率的整数倍,则将叠加图像的x、y长度加大调整到图像地面分辨率的最小整数倍。

步骤2.2判断两景图像叠加排列方式;

步骤2.2.1、如果两景图像叠加后的x方向长度变化值,大于y方向的长度变化值,则图像叠加的排列方式为水平排列,反之则为垂直排列。

其计算公式为:

叠加后x方向长度变化值:djh_x_cd=(叠加后图像x方向长度-图像tx1的x方向长度)=32288-16384=15904;

叠加后y方向长度变化值:djh_y_cd=(叠加后图像y方向长度-图像tx1的y方向长度)=16864-16384=480;;

x方向长宽变化比:x_ckbh_b=djh_x_cd/djh_y_cd=15904/480=33.13;

如果x方向的长宽变化比x_ckbh_b大于1,则为水平排列;如果x_ckbh_b小于0,则为垂直排列。

为了描述方便,在本例中这两景图像排列方式为水平排列,并且图像xtx1位于融合拼接后的图像左侧部分。

步骤2.3创建图像叠加后数据缓存区。

步骤2.3.1、根据融合拼接后的图像最大行列数,pj_tx_hs、pj_tx_ls创建两个背景像元值为0的图像数据缓存区,即图像xtx1和图像xtx2。

步骤2.3.2、根据图像tx1、tx2在叠加图像中的空间坐标,确定图像tx1、tx2两景图像在新图像数据缓存区,即图像xtx1和图像xtx2中每个像元的排列位置。

步骤2.3.3、图像tx1在融合拼接后的图像数据缓存区xtx1中的像元行列排列位置是从(0,0)到(1024,1024);即开始位置参数xtx1_ks_hl(0,0),结束位置参数xtx1_js_hl(1024,1024)。

步骤2.3.4、图像tx2在融合拼接后的图像数据缓存区xtx2中的像元行列排列位置是从:(30,994)到(1054,2018);即开始位置参数xtx2_ks_hl(30,994),结束位置参数xtx2_js_hl(1054,2018)。

步骤2的获取图像基本信息含有计算两景图像融合拼接时重叠区域步骤;

步骤2.4.1、为了描述方便,在本例中这两景图像排列方式为水平排列,并且图像xtx1位于融合拼接后的图像左侧。

步骤2.4.2、根据图像xtx1、xtx2数据缓存区中的像元排列位置关系,参数xtx1_js_hl(1024,1024),xtx2_ks_hl(30,994)中的列参数值就可以计算出两景图像的重叠区域。

重叠开始列cd_ks_l=xtx2_ks_hl(2)=994

重叠结束列cd_js_l=xtx1_js_hl(2)=1024

重叠列数:

cdfw_x=xtx1_js_hl(2)-xtx2_ks_hl(2)

cdfw_x=(1024-994)=30

重叠开始行:cd_ks_h=xtx2_ks_hl(1)=30

重叠结束行:cd_js_h=xtx2_js_hl(1)=1054

步骤2.4.3、计算重叠区域的目的是在两景图像的融合拼接中,只有发生重叠部分的像元对才需要按照融合拼接的指定方式进行计算和处理,而对于其它没有产生重叠的像元,只需要经过像元数据的重采样融合拼接到图像中就可以了,而不需要进行任何其他方面的计算,达到提高计算速度和效率的目的。

步骤3的重采样创建两景图像的空间对应关系步骤中含有通过重采样创建两景待融合拼接图像流程步骤;

步骤3.1.1、根据创建图像叠加后数据缓存区中获得的图像tx1在融合拼接图像数据缓存区xtx1中的像元行列排列参数:

开始位置参数:xtx1_ks_hl(0,0)。

结束位置参数:xtx1_js_hl(1024,1024)。

步骤3.1.2、建立一个数据重采样流程,完成将图像tx1中的像元数据添加到xtx1中,其处理流程见图3所示,创建待融合拼接图像数据缓存区xtx1流程说明:

一、循环参数设置:

1、设置添加几行像元到xtx1,tj_hs=n,行计数器:h_jsq;初值0;

2、设置图像tx1像元存储地址,开始地址tx1_ks_dz,初值=0;

3、图像tx1每行像元数:tx1_h_xys;常数;

4、已经添加的像元数,tj_xys,初值=0;

5、图像xtx1每行像元数,xtx1_h_xys;常数;

6、图像xtx1开始地址,xtx1_ks_dz=0;

二、循环过程:

1、从图像tx1开始地址,tx1_ks_dz=0中读取一个像元,写入到图像xtx1地址xtx1_ks_dz中;

2、添加的像元个数计数器+1,tj_xys+1;

3、判断添加像元个数计数器的个数tj_xys,是否等于图像tx1每行像元数tx1_h_xys,tx1_h_xys=tj_xys;

4、不等于,图像tx1开始地址+1;tx1_ks_dz+1;图像xtx1开始地址+1,xtx1_ks_dz+1;转到步骤1;

5、等于,行计数器+1,h_jsq+1;清楚添加像元个数计数器tj_xys=0;

6、判断行计数器数值是否等于所设置的添加几行像元到xtx1的添加行计数器tj_hs,tj_hsh_jsq=tj_hs;

7、不等于,图像tx1、xtx1地址计算,指向图像tx1、xtx1下一行开始地址;

tx1_ks_dz=xtx1_h_xys*h_jsq;

xtx1_ks_dz=xtx1_h_xys*h_jsq;

转到步骤1;

8、等于,即行计数器h_jsq数值,等于所设置的需要添加几行像元到xtx1的添加行计数器tj_hs,tj_hs=h_jsq,完成添加几行tx1数据到xtx1流程。

步骤3.1.3、在此流程图中,通过设置“添加行数tj_hs”参数的方法,确定在一个流程中可以将图像tx1中的多少行像元,添加到图像xtx1数据缓存区中;如果选择tj_hs=图像tx1的最大行数,则一个流程完成后,就将tx1的所有像元全部添加到图像xtx1数据缓存区中了。

步骤3.1.4、从上述描述可以看出,如果将图像tx1的按照最大行数分组的方法,设置多个线程或计算资源,就可以实现多个流程的同步并行计算了。需要注意的是,对每个流程中图像tx1和xtx1的数据读写地址分别根据所设置的开始行的位置,给出不同的开始地址,就能非常简单的对待创建融合拼接图像xtx1进行并行计算了。

步骤3的重采样创建两景图像的空间对应关系步骤中含有创建待融合拼接图像xtx2步骤;

步骤3.2.1、根据创建图像叠加后数据缓存区中获得的图像tx2在融合拼接图像数据缓存区xtx2中的像元行列排列参数:

开始位置参数:xtx2_ks_hl(30,994)。

结束位置参数:xtx2_js_hl(1054,2018)。

步骤3.2.2、建立一个数据重采样流程,完成将图像tx2中的像元数据添加到xtx2中,其处理流程见图4所示,创建待融合拼接图像数据缓存区xtx2流程说明;

一、循环参数设置:

1、设置添加几行像元到xtx2,tj_hs=n,行计数器:h_jsq;初值0;

2、设置图像tx2像元存储地址,开始地址tx2_ks_dz,初值=0;

3、图像tx2每行像元数:tx2_h_xys;常数;

4、已经添加的像元数,tj_xys,初值=0;

5、图像xtx2每行像元数,xtx2_h_xys;常数;

6、图像xtx2开始地址,xtx2_ks_dz=0;

二、循环过程:

1、从图像tx2开始地址,tx2_ks_dz=0中读取一个像元,写入到图像xtx2地址xtx2_ks_dz中;

2、添加的像元个数计数器+1,tj_xys+1;

3、判断添加像元个数计数器的个数tj_xys,是否等于图像tx2每行像元数tx2_h_xys,tx2_h_xys=tj_xys;

4、不等于,图像tx2开始地址+1;tx2_ks_dz+1;图像xtx2开始地址+1,xtx2_ks_dz+1;转到步骤1;

5、等于,行计数器+1,h_jsq+1;清楚添加像元个数计数器tj_xys=0;

6、判断行计数器数值是否等于所设置的添加几行像元到xtx2的添加行计数器tj_hs,tj_hsh_jsq=tj_hs;

7、不等于,图像tx2、xtx2地址计算,指向图像tx2、xtx2下一行开始地址;

tx2_ks_dz=xtx2_h_xys*h_jsq;

xtx2_ks_dz=xtx2_h_xys*h_jsq;

转到步骤1;

8、等于,即行计数器h_jsq数值,等于所设置的需要添加几行像元到xtx2的添加行计数器tj_hs,tj_hs=h_jsq,完成添加几行tx2数据到xtx2流程。

步骤3.2.3、在此流程图中,通过设置“添加行数tj_hs”参数的方法,确定在一个流程中可以将图像tx2中的多少行像元,添加到图像xtx2数据缓存区中;如果选择tj_hs=图像tx1的最大行数,则一个流程完成后,就将tx2的所有像元全部添加到图像xtx2数据缓存区中了。

步骤3.2.4、从上述描述可以看出,如果将图像tx2的按照最大行数分组的方法,设置多个线程或计算资源,就可以实现多个流程的同步并行计算了。在此需要注意的是,对每个流程中图像tx2和xtx2的数据读写地址分别根据所设置的开始行的位置,给出不同的开始地址,就能非常简单的对待创建融合拼接图像xtx2的并行计算了。

步骤3的重采样创建两景图像的空间对应关系步骤中含有将待融合拼接图像xtx2中没有重叠部分像元融合拼接到xtx1步骤;

步骤3.3.1、在完成将图像tx1、tx2中像元全部重采样添加到待溶合拼接图像xtx1、xtx2数据缓存区后,我们将以xtx1为最终融合拼接结果图像。在将图像xtx2中所有像元全部融合拼接到图像xtx1中时,由于两景图像之间有重叠区域,所以需要分为两个流程进行处理,一是将图像xtx2中没有重叠部分的像元直接拷贝到图像xtx1中;二是对于重叠部分则需要按照“融合拼接方式”的要求进行计算处理。

步骤3.3.2、由于图像xtx2和图像xtx1已经建立了一对一的完全空间位置对应关系,只需根据图像xtx1、xtx2重叠结束列参数、图像xtx2结束位置参数,就可以对图像xtx2中没有重叠部分的像元直接拷贝到图像xtx1中。

图像xtx2像元开始结束行范围:

cd_ks_h=xtx2_ks_hl(1)=30;

cd_js_h=xtx2_js_hl(1)=1054;

图像xtx2像元没有重叠区域开始结束列范围:

cd_ks_l=xtx1_js_hl(2)=1024+1;

cd_js_l=xtx2_js_hl(2)=2018;

步骤3.3.3、建立一个数据拷贝流程,完成将图像xtx2中没有重叠部分的像元直接拷贝到图像xtx1,其处理流程见图5所示,将图像xtx2中没有重叠的像元数据拷贝到图像xtx1流程说明;

一、循环参数设置:

1、设置拷贝几行像元到xtx1,cb_hs=n;行计数器:h_jsq;初值0;

2、图像xtx2每行像元数:xtx2_h_xys;常数;

3、图像xtx1、xtx2地址初始位置值相同,

初始值xtx12_ks_dz=30*xtx2_h_xys+1025;

4、设置图像xtx1像元存储地址,开始地址xtx1_dz,初值=xtx12_ks_dz;

5、设置图像xtx2像元存储地址,开始地址xtx2_dz,

初值=xtx12_ks_dz;

6、要拷贝的一行像元数量,cb_yh_xys,初值=2018-1024=994;

二、循环过程:

1、从图像xtx2像元存储地址xtx2_dz读取一行像元,cb_yh_xys。

拷贝到地址为xtx1_dz的图像数据缓存区xtx1中;

2、行计数器+1,h_jsq+1;

3、判断行计数器的个数h_jsq,是否等于所设置得需要拷贝几行像元参数cb_hs,cb_hs=h_jsq;

4、不等于,读取图像xtx1、xtx2下一行数据地址计算:

图像xtx1:xtx1_dz+xtx2_h_xys。

图像xtx2:xtx2_dz+xtx2_h_xys。

转到步骤1;

5、等于,完成将图像xtx2中没有重叠的像元数据拷贝到图像xtx1,

流程结束。

步骤3.3.4、在此流程图中,通过设置“拷贝行数cb_hs”参数的方法,确定在一个流程中可以将图像xtx2中的多少行像元,拷贝到图像xtx2数据缓存区中;如果选择tj_hs=图像xtx2的最大行数,则一个流程完成后,就将xtx2的所有像元全部拷贝到图像xtx2数据缓存区中。

步骤3.3.5、从上述描述可以看出,如果将图像xtx2的按照最大行数分组的方法,设置多个线程或计算资源,就可以实现多个流程的并行计算了。在此需要注意的是,对每个流程中图像xtx1和xtx2的数据读写地址分别根据所设置的开始行的位置,给出不同的开始地址,就能非常简单的对待创建融合拼接图像xtx2进行并行计算了。

步骤4的进行两景图像的融合拼接步骤含有图像xtx1、xtx2重叠区域像元融合拼接流程步骤;

步骤4.1、对于图像xtx1、xtx2中重叠部分像元的融合拼接,需要根据设置中指定的“融合拼接方式”进行,本例中参数rhpj_fs=1,参考图像xtx1像元覆盖待拼接图像xtx2像元;而重叠区域参数在获取图像基本参数流程中已经全部获得。

图像重叠开始、结束行位置参数:

xtx2_ks_h=xtx2_ks_hl(1)=30;

xtx2_js_h=xtx2_js_hl(1)=1054;

图像重叠开始、结束列位置参数:

xtx2_ks_l=xtx2_ks_hl(2)=994;

xtx2_js_l=xtx1_js_hl(2)=1024;

步骤4.2、建立一个重叠部分像元融合拼接流程,完成将图像xtx2与图像xtx1中重叠部分像元的融合拼接操作,由于融合拼接方式为rhpj_fs=1,参考图像像元覆盖待拼接图像像元,这样在xtx2像元融合拼接中,如果xtx1位置上的像元是有效像元,则舍弃xtx2位置上的像元;反之,则用xtx2位置上的像元覆盖xtx1位置上的像元,其处理流程见图6所示,图像xtx1、xtx2重叠区域融合拼接流程说明;

一、循环参数设置:

1、设置融合拼接几行像元到xtx1,rhpj_hs=n;行计数器:h_jsq;初值0;

2、图像xtx2每行像元数:xtx2_h_xys;常数;融合拼接方式:rhpj_fs=1

3、图像xtx1、xtx2地址初始位置值相同,

初始值xtx12_ks_dz=30*xtx2_h_xys+994;

4、设置图像xtx1像元存储地址,开始地址xtx1_dz,初值=xtx12_ks_dz;

5、设置图像xtx2像元存储地址,开始地址xtx2_dz,初值=xtx12_ks_dz;

6、融合拼接像元数量,rhpj_xys,初值=0;每行像元数量,mh_xys=30;

7、图像xtx2像元,xtx2_xy;图像xtx1像元,xtx1_xy;

二、循环过程:

1、从图像xtx2像元存储地址xtx2_dz读取一个像元,xtx2_xy。

从图像xtx1像元存储地址xtx1_dz读取一个像元,xtx1_xy。

2、融合拼接像元数量+1,rhpj_xys+1。

3、根据融合拼接方式参数rhpj_fs,进行融合拼接处理,具体处理流程见图7所示。在本例中rhpj_fs=1,即图像xtx1像元覆盖图像xtx2像元,如果图像xtx1像元为无效像元,并且图像xtx2像元为有效像元,则用图像xtx2像元覆盖图像xtx1像元。

4、判断已经融合拼接的像元数量rhpj_xys是否等于每行像元数量mh_xys,即:rhpj_xys=mh_xys;

5、不等于,读取图像xtx1、xtx2下一个像元数据地址计算:

图像xtx1:xtx1_dz+1。

图像xtx2:xtx2_dz+1。

转到步骤1;

6、等于,行计数器+1;h_jsq+1;清除融合拼接的像元数量参数,rhpj_xys=0;

7、判断设置的融合拼接几行像元到图像xtx1参数数值rhpj_hs,是否等于行计数器数值h_jsq;即rhpj_hs=h_jsq;

8、等于,将图像xtx2中没有重叠的像元数据拷贝到图像xtx1流程结束。

9、不等于,计算图像xtx1、xtx2中下一个需要进行融合拼接像元的存储地址:

xtx1_dz=xtx12_ks_dz+xtx2_h_xys*h_jsq+rhpj_xys。

xtx2_dz=xtx12_ks_dz+xtx2_h_xys*h_jsq+rhpj_xys。

转到步骤1;

步骤4.3、在此流程图中,通过设置“融合拼接行数rhpj_hs”参数的方法,确定在一个流程中可以将图像xtx2中的多少行像元,融合拼接到图像xtx2数据缓存区中;如果选择tj_hs=图像xtx2的最大行数,则一个流程完成后,就将xtx2的所有像元全部融合拼接到图像xtx2数据缓存区中,完成全部重叠区域像元的融合拼接工作。

步骤4.4、从上述描述可以看出,如果将图像xtx2的按照最大行数分组的方法,设置多个线程或计算资源,就可以实现多个流程的同步并行计算。在此需要注意的是,对每个流程中图像xtx1和xtx2的数据读写地址分别根据所设置的开始行的位置,给出不同的开始地址,就能非常简单的对待创建融合拼接图像xtx2进行并行计算了。

步骤5的保存融合拼接后图像文件步骤含有保存融合拼接后图像流程步骤;依据图像xtx1的空间地理坐标信息,图像最大行列数信息和全部像元信息,构建出融合拼接后的图像数据文件。

步骤6的退出融合拼接流程步骤含有完成融合拼接流程,退出步骤。

如图7所示,在此流程中,输入为两个像元值,图像xtx1的像元值xtx1_xy和图像xtx2的像元值xtx2_xy,根据融合拼接方式rhpj_fs参数分别进行处理:

当rhpj_fs=1时,为参考图像xtx1像元xtx1_xy覆盖待拼接图像xtx2像元xtx2_xy,如果xtx1位置上的像元是有效像元,则舍弃xtx2像元;反之,则用xtx2像元覆盖xtx1位置上的像元。

当rhpj_fs=2时,为待拼接图像xtx2像元xtx2_xy覆盖参考图像xtx1像元xtx1_xy;如果xtx2位置上的像元是有效像元,则用xtx2_xy像元覆盖xtx1位置上的xtx1_xy像元,反之,则舍弃xtx2像元。

当rhpj_fs=3时;为待拼接图像xtx2像元xtx2_xy和参考图像xtx1像元xtx1_xy的算数平均值进行融合拼接。计算像元平均值,xy_jz=(xtx2_xy+xtx1_xy)/2,用像元平均值xy_jz覆盖图像xtx1位置上的像元。

如上所述,对本发明的实施例进行了详细地说明,但是只要实质上没有脱离本发明的发明点及效果可以有很多的变形,这对本领域的技术人员来说是显而易见的。因此,这样的变形例也全部包含在本发明的保护范围之内。

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