图像融合技术能充分弥补单一传感器的不足,获得更加可靠、准确和全面的图像数据。图像融合技术已经全面的应用于遥感、军事、医疗卫生等各个方面。目前图像融合的研究领域主要集中在基于图像稀疏表示的融合方法上,其中包括基于多尺度分解的融合方法和基于冗余字典分解的融合方法,但是两种方法均存在着各自的不足。因此本文将以此为出发点,寻找性能上更优的图像融合方法。其次,目前对图像融合的客观质量评价大多依据经验选择,缺少关于如何合理选择客观评价指标集的研究,因此本文将对图像融合客观评价指标集的遴选方法进行研究。本文提出了基于NSST和SR相结合的图像融合算法。本文首先研究基于多尺度的图像融合方法,分别对小波(DWT)、曲线波(CVT)、非下采样轮廓波(NSCT)和非下采样剪切波(NSST)进行研究,通过对比实验分析得到了基于多尺度图像融合中分解层数的选择和滤波器的选择标准,同时论证了NSST的图像融合在基于多尺度图像融合方法中的优势。本文接着研究了基于分支字典的图像融合方法(SR),通过对无污染图像、噪声图像和失配图像的实验,证明了SR能够改善融合系统的鲁棒性。在两种算法研究的基础上,选择NSST和SR,本文通过实验分析对比两种算法的优缺点,发现了它们存在着互补特性,基于此提出了基于NSST和SR相结合的图像融合算法。该方法首先对图像进行NSST分解,然后在低频子带,采用学习得到的字典对低频图像通过SR方法进行融合,在高频子带以区域能量为显著性指标进行融合,最后通过NSST逆变换得到融合结果。对于提出的算法,本文接着通过对多聚焦图像、红外可见光图像、以及医学图像进行实验验证该算法的优势。本文的研究证明了基于NSST和SR相结合的图像融合算法能够充分保留其优势,弥补其不足,优于NSST和SR两种算法本身。本文以多聚焦图像融合为应用背景,提出了一种图像融合客观评价指标集的选择方法。该方法首先通过图像融合客观评价指标进行相关性分析。接着通过相关性对指标进行聚类。然后针对多聚焦图像的具体应用,分别在无污染图像、噪声图像、失配图像三种情况下对指标的一致性进行分析,最后结合相关性分析和一致性分析得到结果。实验表明,通过以上方法,能够得到相对合理的多聚焦图像融合的客观评价指标集。
在高斯金字塔的运算过程中,图像经过卷积和下采样操作会丢失部分高频细节信息。为描述这些高频信息,人们定义了拉普拉斯金字塔(Laplacian Pyramid, LP)。用高斯金字塔的每一层图像减去其上一层图像上采样并高斯卷积之后的预测图像,得到一系列的差值图像即为 LP 分解图像。
将Gl内插方法得到放大图像*Gl,使*Gl的尺寸与*Gl-1的尺寸相同,即放大算子Expand。
该式子实现两个步骤:在偶数行和列插入0,然后使用下采样中的高斯核进行滤波处理,得到和l-1层一样大小的图像。
N为拉普拉斯金字塔顶层的层号,LPl是拉普拉斯金字塔分解的第L层图像。由LP0,LP1、LP2…LPN构成的金字塔即为拉普拉斯金字塔。它的每一层L0图像是高斯金字塔本层G0图像与其高一层图像G1经内插放大后图像*G1的差,此过程相当于带通滤波,因此拉普拉斯金字塔又称为带通金字塔分解。
内插方法:opencv中有实现的函数pyrup。可以得到*G1。然后在两个函数作差,相减就可以得到拉普拉斯金字塔。
图解gauss、laplace金字塔的构成:
求得每个图像的拉普拉斯金字塔后需要对相应层次的图像进行融合,具体的融合规则有,取大、取小,等等。
重构
对融合后的拉普拉斯金字塔,从其顶层开始逐层从上至下按下式进行递推,可以恢复其对应的高斯金字塔,并最终可得到原图像G0。就是从最高层开始使用内插的方法。
NSCT是基于Nonsubsampled金字塔(NSP)和Nonsubsampled方向滤波器(NSDFB)的一种变换。首先由NSP对输入图像进行塔形分解,分解为高通和低通两个部分,然后由NSDFB将高频子带分解为多个方向子带,低频部分继续进行如上分解。
Nonsubsampled Pyramid(NSP)和Contourlet的Laplacian Pyramid(LP)多尺度分析特性不同。图像通过Nonsubsampled Pyramid(NSP)进行多尺度分解,NSP去除了上采样和下采样,减少了采样在滤波器中的失真,获得了平移不变性。NSP为具有平移不变性滤波结构的NSCT多尺度分析,可以得到与LP分解一样的多尺度分析特性。图2.4(a)处分为3个尺度。
Nonsubsampled方向滤波器(NSDFB)是一个双通道的滤波器,将分布在同方向的奇异点合成NSCT的系数。方向滤波器(DFB)是Bamberger and Smith提出的。其通过一个l层的树状结构的分解,有效的将信号分成了 个子带,其频带分割成为锲形。Nonsubsampled DFB(NSDFB)为非采样,减少了采样在滤波器中的失真,获得了平移不变性。并且每个尺度下的方向子图的的大小都和原图同样大小,Contourlet变换为所有子带之和等于原图。NSCT有更多的细节得以保留,变换系数是冗余的。下为三个尺度下对图像频域的分割图,其中每个尺度的方向子带数目以2倍递增,以在1,2,3尺度下的方向子带数目分别为2,4,8个。
paper 125:NSCT——Nonsubsampled contourlet 变换程序(尺度不变性问题研究) - Jason.Hevey - 博客园 https://www.cnblogs.com/molakejin/p/5918976.html
【CV】NSCT:Nonsubsampled Contourlet变换算法以及matlab实现_计算机视觉CV,图像处理,图像融合_SoaringLee_fighting的技术专栏-CSDN博客 https://blog.csdn.net/soaringlee_fighting/article/details/80150711
非下采样Contourlet变换(Nonsubsampled contourlet transform,NSCT)采用非抽样金字塔结构和非抽样方向滤波器组构成,具有Contourlet变换所不具备的平移不变性、较高冗余度等优良特性,而且能够克服伪吉布斯现象。图像经过非下采样Contourlet变换后分解成多尺度、多方向的细节信息,这些细节信息代表了图像不同频带不同方向的特征,这就简化了系数之间的关系。
clear all;
close all;
clc;
addpath(genpath('sparsefusion'));
addpath(genpath('dtcwt_toolbox'));
addpath(genpath('fdct_wrapping_matlab'));
addpath(genpath('nsct_toolbox'));
load('sparsefusion/Dictionary/D_100000_256_8.mat');
[imagename1 imagepath1]=uigetfile('source_images\*.jpg;*.bmp;*.png;*.tif;*.tiff;*.pgm;*.gif','Please choose the first input image');
image_input1=imread(strcat(imagepath1,imagename1));
[imagename2 imagepath2]=uigetfile('source_images\*.jpg;*.bmp;*.png;*.tif;*.tiff;*.pgm;*.gif','Please choose the second input image');
image_input2=imread(strcat(imagepath2,imagename2));
figure;subplot(121);imshow(image_input1);title('图1');subplot(122);imshow(image_input2);title('图2')
if size(image_input1)~=size(image_input2)
error('two images are not the same size.');
end
img1=double(image_input1);
img2=double(image_input2);
overlap = 6;
epsilon=0.1;
level=4;
% To make a comparison, please use
% LP-SR for medical image fusion,
% DTCWT-SR for visible-infrared image fusion,
% NSCT-SR for multi-focus image fusion.
tic;
if size(img1,3)==1 %for gray images
imgf = lp_sr_fuse(img1,img2,level,3,3,D,overlap,epsilon); %LP-SR
imgf1 = rp_sr_fuse(img1,img2,level,3,3,D,overlap,epsilon); %RP-SR
imgf2 = dwt_sr_fuse(img1,img2,level,D,overlap,epsilon); %DWT-SR
imgf3 = dtcwt_sr_fuse(img1,img2,level,D,overlap,epsilon); %DTCWT-SR
imgf4 = curvelet_sr_fuse(img1,img2,level+1,D,overlap,epsilon); %CVT-SR
imgf5 = nsct_sr_fuse(img1,img2,[2,3,3,4],D,overlap,epsilon); %NSCT-SR
else %for color images
imgf=zeros(size(img1));
imgf1=zeros(size(img1));
imgf2=zeros(size(img1));
imgf3=zeros(size(img1));
imgf4=zeros(size(img1));
imgf5=zeros(size(img1));
for i=1:3
imgf(:,:,i) = lp_sr_fuse(img1(:,:,i),img2(:,:,i),level,3,3,D,overlap,epsilon); %LP-SR
imgf1(:,:,i) = rp_sr_fuse(img1(:,:,i),img2(:,:,i),level,3,3,D,overlap,epsilon); %RP-SR
imgf2(:,:,i) = dwt_sr_fuse(img1(:,:,i),img2(:,:,i),level,D,overlap,epsilon); %DWT-SR
imgf3(:,:,i) = dtcwt_sr_fuse(img1(:,:,i),img2(:,:,i),level,D,overlap,epsilon); %DTCWT-SR
imgf4(:,:,i) = curvelet_sr_fuse(img1(:,:,i),img2(:,:,i),level+1,D,overlap,epsilon); %CVT-SR
imgf5(:,:,i) = nsct_sr_fuse(img1(:,:,i),img2(:,:,i),[2,3,3,4],D,overlap,epsilon); %NSCT-SR
end
end
toc;
figure;;subplot(231);imshow(uint8(imgf));title('LP-SR');
subplot(232);imshow(uint8(imgf1));title('RP-SR')
subplot(233);imshow(uint8(imgf2));title('DWT-SR')
subplot(234);imshow(uint8(imgf3));title('DTCWT-SR')
subplot(235);imshow(uint8(imgf4));title('CVT-SR')
subplot(236);imshow(uint8(imgf5));title('NSCT-SR')
imwrite(uint8(imgf),'Results/fused_mstsr.tif');
[1] Ohkawa Y , Hadi C , Fukui S K . Fast Combined Separability Filter for Detecting Circular Objects[C]// Iapr Conference on Machine Vision Applications. 2011.
[1] Ohkawa, Y. , C. Hadi , and S. K. Fukui . "Fast Combined Separability Filter for Detecting Circular Objects." Iapr Conference on Machine Vision Applications 2011.