影像融合(拼接)工具 ImageFusion

 

     Image Fusion工具是基于CxImage 6.0 的Demo开发的影像拼接工具,它针对的是网上的WEBGIS中的连续的一帧帧连续的图像。这些图像的特点是连续的图像之间有重叠的部分(通过拷屏获得),只要给定区域匹配,则可认为其余的都匹配(这个是该工具的应用场合)。

 

    影像处理平台的选择:

        (1) GDAL :

                 能够处理几百兆几个G的影像,这个可以作为后续版本的开发平台。

        (2) GDI+ :

                 代码闭源,不做考虑。

        (3) OpenCV:

                 不熟悉,故也不考虑。

        (4) CxImage(我用的6.0的版本):

                优秀的开源类库,可以处理的图像类型包括bmp、gif、jpg、 jpeg、png、ico、tif、tiff、tga、pcx、wbmp、wmf、

                emf、j2k、jp2、jbg、j2c、jpc、pgx、pnm、pgm、ppm、ras、mng、jng、ska、nef、crw、cr2、mrw、raf、

                erf、3fr、dcr、raw、dng、pef、x3f、arw、sr2、mef、orf 。 并且它提供的DEMO功能强大(支持大图像需调整

                某些参数),所以我选择了基于CxImage 6.0 的Demo来开发这一工具。 对于网上提到的CxImage内存泄露和不能批

              处理,我已经解决了这些问题。

     

     拼接的原理:

          进行拼接的两张图,假定图A去匹配图B,则称图A是叠加图,图B是底图。即先贴上底图,然后在底图的某个位置贴上叠加图。

          这里的位置包括在底图的某个位置 Point(m_dxoffset,m_dyoffset) ,以及叠加图开始的位置Point(m_xoffset,m_yoffset)。

          匹配的原则是给定区域的颜色特征(RGB,A通道忽略不计)相同。通过匹配搜索,确定拼接的位置信息。

          匹配矩阵是(起始行,行高,起始列,列宽),这四个参数可以调整,用来规避黑色区域。

         (一) 水平拼接查找:

             (1)先保证参与运算的底图的最后两列色值矩阵不重复。然后找到第一组匹配点。 从底图的最后一列从上到下采集数据存

                     入矩阵,对于固定的底图颜色矩阵,从叠加图的第一列从上到下,然后第二列从上到下,依次找到匹配的颜色矩阵,并

                     记录叠加图中的起始列和起始行以及底图的起始行。

             (2) 再找(列宽 - 1)组其他的匹配点。 从(1)中的匹配参数开始查找,直到查找完。

 

         (二) 垂直拼接 查找:

 

             (1)先保证参与运算的叠加图的最前两行色值矩阵不重复。然后找到第一组匹配点。 从叠加图的第一行从左到右采集数据存

                      入矩阵,对于固定的底图颜色矩阵,从底图的最后一行从左到右,然后倒数第二行从左到右,依次找到匹配的颜色矩阵

                      ,并记录底图中的起始列和起始行以及叠加图的起始行。

             (2) 再找(行高 - 1)组其他的匹配点。 从(1)中的匹配参数开始查找,直到查找完。       

        (三) 水平和垂直方向上的合并:

             这里要尽量增加图像有效部分,对于被遮盖的部分,要用贴的方式给补回去。算法就不给出了,主要就是通过拼接查找得到的

             四个位置参数,得到底图和叠加图合并后的图像矩形区域,往这个区域分别贴上两张图即可。

 

                 

 

影像融合(拼接)工具 ImageFusion_第1张图片  

                                                                                 Image Fusion主界面 

 

 

影像融合(拼接)工具 ImageFusion_第2张图片

 

                                                                                       水平拼接的例子

 

影像融合(拼接)工具 ImageFusion_第3张图片

                                                                                           水平拼接的效果图

 

 

 影像融合(拼接)工具 ImageFusion_第4张图片                                                                            

                                                                                              垂直拼接的例子   

 

                                                                                      

影像融合(拼接)工具 ImageFusion_第5张图片

                                                                                              垂直拼接的效果图   

                                         

 

欢迎读者批评指正,我的EMAIL: [email protected].

你可能感兴趣的:(图像影像处理)