天天看點

【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼

圖像融合技術能充分彌補單一傳感器的不足,獲得更加可靠、準确和全面的圖像資料。圖像融合技術已經全面的應用于遙感、軍事、醫療衛生等各個方面。目前圖像融合的研究領域主要集中在基于圖像稀疏表示的融合方法上,其中包括基于多尺度分解的融合方法和基于備援字典分解的融合方法,但是兩種方法均存在着各自的不足。是以本文将以此為出發點,尋找性能上更優的圖像融合方法。其次,目前對圖像融合的客觀品質評價大多依據經驗選擇,缺少關于如何合理選擇客觀評價名額集的研究,是以本文将對圖像融合客觀評價名額集的遴選方法進行研究。本文提出了基于NSST和SR相結合的圖像融合算法。本文首先研究基于多尺度的圖像融合方法,分别對小波(DWT)、曲線波(CVT)、非下采樣輪廓波(NSCT)和非下采樣剪切波(NSST)進行研究,通過對比實驗分析得到了基于多尺度圖像融合中分解層數的選擇和濾波器的選擇标準,同時論證了NSST的圖像融合在基于多尺度圖像融合方法中的優勢。本文接着研究了基于分支字典的圖像融合方法(SR),通過對無污染圖像、噪聲圖像和失配圖像的實驗,證明了SR能夠改善融合系統的魯棒性。在兩種算法研究的基礎上,選擇NSST和SR,本文通過實驗分析對比兩種算法的優缺點,發現了它們存在着互補特性,基于此提出了基于NSST和SR相結合的圖像融合算法。該方法首先對圖像進行NSST分解,然後在低頻子帶,采用學習得到的字典對低頻圖像通過SR方法進行融合,在高頻子帶以區域能量為顯著性名額進行融合,最後通過NSST逆變換得到融合結果。對于提出的算法,本文接着通過對多聚焦圖像、紅外可見光圖像、以及醫學圖像進行實驗驗證該算法的優勢。本文的研究證明了基于NSST和SR相結合的圖像融合算法能夠充分保留其優勢,彌補其不足,優于NSST和SR兩種算法本身。本文以多聚焦圖像融合為應用背景,提出了一種圖像融合客觀評價名額集的選擇方法。該方法首先通過圖像融合客觀評價名額進行相關性分析。接着通過相關性對名額進行聚類。然後針對多聚焦圖像的具體應用,分别在無污染圖像、噪聲圖像、失配圖像三種情況下對名額的一緻性進行分析,最後結合相關性分析和一緻性分析得到結果。實驗表明,通過以上方法,能夠得到相對合理的多聚焦圖像融合的客觀評價名額集。

一、融合算法介紹

1.1 拉普拉斯金字塔算法

拉普拉斯金字塔

  在高斯金字塔的運算過程中,圖像經過卷積和下采樣操作會丢失部分高頻細節資訊。為描述這些高頻資訊,人們定義了拉普拉斯金字塔(Laplacian Pyramid, LP)。用高斯金字塔的每一層圖像減去其上一層圖像上采樣并高斯卷積之後的預測圖像,得到一系列的內插補點圖像即為 LP 分解圖像。

  将Gl内插方法得到放大圖像*Gl,使*Gl的尺寸與*Gl-1的尺寸相同,即放大算子Expand。

【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼
【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼

  該式子實作兩個步驟:在偶數行和列插入0,然後使用下采樣中的高斯核進行濾波處理,得到和l-1層一樣大小的圖像。

【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼
【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼

  N為拉普拉斯金字塔頂層的層号,LPl是拉普拉斯金字塔分解的第L層圖像。由LP0,LP1、LP2…LPN構成的金字塔即為拉普拉斯金字塔。它的每一層L0圖像是高斯金字塔本層G0圖像與其高一層圖像G1經内插放大後圖像*G1的差,此過程相當于帶通濾波,是以拉普拉斯金字塔又稱為帶通金字塔分解。

  

  内插方法:opencv中有實作的函數pyrup。可以得到*G1。然後在兩個函數作差,相減就可以得到拉普拉斯金字塔。

  圖解gauss、laplace金字塔的構成:

【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼
【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼
【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼
【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼

  求得每個圖像的拉普拉斯金字塔後需要對相應層次的圖像進行融合,具體的融合規則有,取大、取小,等等。

  重構

  對融合後的拉普拉斯金字塔,從其頂層開始逐層從上至下按下式進行遞推,可以恢複其對應的高斯金字塔,并最終可得到原圖像G0。就是從最高層開始使用内插的方法。

【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼
【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼

1.2 小波變換

小波就是很小的波,小波直接把傅裡葉變換的基給換了——将無限長的三角函數基換成了有限長的會衰減的小波基。這樣不僅能夠擷取頻率,還可以定位到時間了。

小波變換的公式如下

【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼
【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼

從公式可以看出,不同于傅裡葉變換,變量隻有頻率ω,小波變換有兩個變量:尺度a和平移量 τ。尺度a控制小波函數的伸縮,平移量 τ控制小波函數的平移。尺度就對應于頻率(反比),平移量 τ就對應于時間。

伸縮因子的作用不同的伸縮因子生成不同的頻率成分,如下圖所示。

【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼

平移因子使得小波能夠沿信号的時間軸實作周遊分析,如下圖所示。
【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼
【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼

多分辨分析也稱為多尺度分析,是建立在函數空間概念上的理論。它構造了一組正交基,使得尺度空間與小波空間互相正交。随着尺度由大到小的變化,可在各尺度上由粗及精地觀察目标。這就是多分辨率分析的思想。小波多分辨分析的原理圖如下。

【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼
【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼

小波分解樹如下圖所示。高頻分量稱為細節分量,頻率分量部分,稱為近似分量

【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼

小波包分析可以看作是小波分解的一種推廣方法,對多分辨分析沒有細分的高頻分量部分進行進一步的分解,小波包分解樹如下圖所示。

【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼
【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼

1.3 非下采樣輪廓波nsct算法

NSCT是基于Nonsubsampled金字塔(NSP)和Nonsubsampled方向濾波器(NSDFB)的一種變換。首先由NSP對輸入圖像進行塔形分解,分解為高通和低通兩個部分,然後由NSDFB将高頻子帶分解為多個方向子帶,低頻部分繼續進行如上分解。

  • Nonsubsampled Pyramid(NSP):

Nonsubsampled Pyramid(NSP)和Contourlet的Laplacian Pyramid(LP)多尺度分析特性不同。圖像通過Nonsubsampled Pyramid(NSP)進行多尺度分解,NSP去除了上采樣和下采樣,減少了采樣在濾波器中的失真,獲得了平移不變性。NSP為具有平移不變性濾波結構的NSCT多尺度分析,可以得到與LP分解一樣的多尺度分析特性。圖2.4(a)處分為3個尺度。

  • Nonsubsampled方向濾波器(NSDFB)

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 變換程式(尺度不變性問題研究

【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼
【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼

非下采樣Contourlet變換(Nonsubsampled contourlet transform,NSCT)采用非抽樣金字塔結構和非抽樣方向濾波器組構成,具有Contourlet變換所不具備的平移不變性、較高備援度等優良特性,而且能夠克服僞吉布斯現象。圖像經過非下采樣Contourlet變換後分解成多尺度、多方向的細節資訊,這些細節資訊代表了圖像不同頻帶不同方向的特征,這就簡化了系數之間的關系。

1.4曲線波(CVT)

二、部分代碼

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');

      
【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼

三、仿真結果

【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼
【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼

【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼
【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼

四、參考文獻

[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.

【圖像融合】基于nsct-SR+dwt-SR+拉普拉斯金字塔算法-SR等多種圖像融合算法matlab源碼