Matalb圖像拼接技術

  轉自  http://www.studa.net/yingyong/090603/16512736-2.html

3.3.2 特徵點匹配法

  比值匹配法利用圖像特徵較少,而且在圖像發生小角度旋轉的時候容易發生誤匹配。基於特徵點的匹配法可以很好的解決這類問題。特徵點主要指圖像中的明顯點,如房屋角點、圓點等。用於點特徵提取得算子稱爲有利算子或興趣算子。自七十年代以來出現一系列各不相同、各有特色的興趣算子,較知名的有Moravec算子、Hannah算子與Foistner等。

  本文采用Moravec算子進行特徵點提取:

    Moravec算子的基本思想是,以像素點的四個主要方向上最小灰度方差表示該像素點與鄰近像素點的灰度變化情況,即像素點的興趣值,然後在圖像的局部選擇具有最大的興趣值得點(灰度變化明顯得點)作爲特徵點,具體算法如下:

  (1)計算各像素點的興趣值IV (interest value),例如計算像素點(c,r)的興趣值,先在以像素點((cr)爲中心的n n的影像窗口中(如圖3.3.2所示的5 5的窗口),計算四個主要方向相鄰像元灰度差的平方和。

圖像拼接算法及實現(續) - 清風 - 清風的博客

       圖3.3.2   Moravec 算子特徵點提取示意圖

V圖像拼接算法及實現(續) - 清風 - 清風的博客 =圖像拼接算法及實現(續) - 清風 - 清風的博客

V圖像拼接算法及實現(續) - 清風 - 清風的博客 =圖像拼接算法及實現(續) - 清風 - 清風的博客

V圖像拼接算法及實現(續) - 清風 - 清風的博客 =圖像拼接算法及實現(續) - 清風 - 清風的博客

V圖像拼接算法及實現(續) - 清風 - 清風的博客 =圖像拼接算法及實現(續) - 清風 - 清風的博客

其中k=INT(n/2)。取其中最小者爲像元((c,r)的興趣值:

IV(c,r)=V=min{ V圖像拼接算法及實現(續) - 清風 - 清風的博客 , V圖像拼接算法及實現(續) - 清風 - 清風的博客 , V圖像拼接算法及實現(續) - 清風 - 清風的博客 , V圖像拼接算法及實現(續) - 清風 - 清風的博客 }

  (2)根據給定的閡值,選擇興趣值大於該闡值的點作爲特徵點的候選點。設V 圖像拼接算法及實現(續) - 清風 - 清風的博客爲事先設定好的閉值,如果V > V圖像拼接算法及實現(續) - 清風 - 清風的博客  ,則V爲特徵點的候選點。

闌值得選擇應以候選點中包括需要的特徵點,而又不含過多的非特徵點。

 (3)在候選點中選取局部極大值點作爲需要的特徵點。在一定大小的窗口內(可不同於興趣值計算窗口),去掉所有不是最大興趣值的候選點,只留下興趣值最大者,該像素即爲一個特徵點。

    在有了以上的特徵點提取的基礎上,基於特徵點匹配算法主要步驟如下:

    (1)在參考圖像T的重疊部分中選取4個區域,每個區域利用Moravec算子找出特徵點。

    (2)選取以特徵點爲中心的區域,本文大小選擇7X7的區域,在搜索圖S中尋找最相似的匹配。因爲有4個特徵點,故有4個特徵區域,找到相應的特徵區域的匹配也有4塊。

    (3)利用這4組匹配的特徵區域的中心點,也就是4對匹配的特徵點,代入方程式(3-2-2)求解,所求的解即爲兩幅圖像間的變換系數。

 圖像拼接算法及實現(續) - 清風 - 清風的博客                               (3-2-2)

    該算法的主要優點:

    (1)圖像的特徵信息得到了利用,能夠有的放矢,不是在盲目的搜索。

    (2)誤匹配發生的概率小,因爲利用了參考圖像T包含特徵點的特徵區域來尋找相應匹配,因此在搜索圖S中相應的特徵區域容易確認。

    該算法的主要缺點:

    (1)計算的代價高,計算量大。該算法需要計算出特徵點以及特徵點的匹配點,同時還要將所有4對特徵點帶入式3-2-2求解變換系數,計算量大。

  3.4 本章小結

  本章分析了現有的多種圖像配准算法以及圖像配準中的難點。

  第四章  圖像融合技術

  4.1 圖像融合技術的基本概念

  數字圖像融合(Digital Image Fusion)是以圖像爲主要研究內容的數據融合技術,是把多個不同模式的圖像傳感器獲得的同一場景的多幅圖像或同一傳感器在不同時刻獲得的同一場景的多幅圖像合成爲一幅圖像的過程。由於不同模式的圖像傳感器的成像機理不同,工作電磁波的波長不同,所以不同圖像傳感器獲得的同一場景的多幅圖像之間具有信息的冗餘性和互補性,經圖像融合技術得到的合成圖像則可以更全面、更精確地描述所研究的對象。正是由於這一特點,圖像融合技術現已廣泛地應用於軍事、遙感、計算機視覺、醫學圖像處理等領域中。

  數字圖像融合是圖像分析的一項重要技術,該技術在數字地圖拼接、全景圖、虛擬現實等領域有着重要應用。雖然Photoshop等圖像處現軟件提供了圖像處理功能,可以通過拖放的方式進行圖像拼接,但由於完全是手工操作,單調乏味,且精度不高,因此,有必要尋找一種方便可行的圖像融合方法。Matlab具有強大的計算功能和豐富的工具箱函數,例如圖像處理和小波工具箱包含了大多數經典算法,並且它提供了一個非常方便快捷的算法研究平臺,可讓用戶把精力集中在算法上而不是編程上,從而能大大提高研究效率。

  4.2 手動配準與圖象融合

  圖像融合包含圖像配準和無縫合成兩個部分.由於成像時受到各種變形因素的影響,得到的各幅圖像間存在着相對的幾何差異。圖像配準是通過數學模擬來對圖像間存在着的幾何差異進行校正,把相鄰兩幅圖像合成到同一座標系下,並使得相同景物在不同的局部圖像中對應起來,以便於圖像無縫合成。本文采用Matlab中的cpselect、cp2tform函數完成幾何配準。cpselect函數顯示圖像界面,手動在兩幅圖像的重疊部分選取配準控制點,Matlab自動進行亞像素分析,由cp2tform函數值正重疊部分的幾何差異。Matlab中的cp2tform函數能修正6種變形,分別是圖(b):線性相似;圖(c):仿射;圖(d):投影;圖(e):多頂式;圖(o:分段線性;圖(g):局部加權平均。前4種爲全局變換,後兩種爲局部變換,如圖I所示,圖(a)爲修正結果;圖(b)至圖(g)爲對應的變形。

圖像拼接算法及實現(續) - 清風 - 清風的博客
圖1-1 cp2tform函數能修正的6種幾何變形

  圖像配準之後,由於圖像重疊區域之間差異的存在,如果將圖像象素簡單疊加,拼按處就會出現明顯的拼接縫,因此需要一種技術修正待拼接圖像拼接縫附近的顏色值,使之平滑過渡,實現無縫合成。傳統的融合方法多是在時間域對圖像進行算術運算,沒有考慮處理圖像時其相應頻率域的變化。從數學上講,拼接縫的消除相當於圖像顏色或灰度曲面的光滑連接,但實際上圖像的拼接與曲面的光滑不同,圖像顏色或灰度曲面的光滑表現爲對圖像的模糊化,從而導致圖像模糊不清。

  4.3 圖像融合規則

  圖像的融合規則(Fusion rule)是圖像融合的核心,融合規則的好壞直接影響融合圖像的速度和質量。

  Burt提出了基於像素選取的融合規則,在將原圖像分解成不同分辨率圖像的基礎上,選取絕對值最大的像素值(或係數)作爲融合後的像素值(或係數)。這是基於在不同分辨率圖像中,具有較大值的像素(或係數)包含更多的圖像信息。

  Petrovic和Xydeas提出了考慮分解層內各圖像(若存在多個圖像)及分解層間的相關性的像素選取融合規則。蒲恬在應用小波變換進行圖像融合時,根據人類視覺系統對局部對比度敏感的特性,採用了基於對比度的像素選取融合規則。

  基於像素的融合選取僅是以單個像素作爲融合對象,它並未考慮圖像相鄰像素間的相關性,因此融合結果不是很理想。考慮圖像相鄰像素間的相關性,Burt和Kolczynski提出了基於區域特性選擇的加權平均融合規則,將像素值(或係數)的融合選取與其所在的局部區域聯繫起來。

  在Lietal提出的融合規則中,其在選取窗口區域中較大的像素值(或係數)作爲融合後像素值(或係數)的同時,還考慮了窗口區域像素(或係數)的相關性。Chibani和Houacine在其融合規則中,通過計算輸入原圖像相應窗口區域中像素絕對值相比較大的個數,決定融合像素的選取。基於窗口區域的融合規則由於考慮相鄰像素的相關性,因此減少了融合像素的錯誤選取。融合效果得到提高。

ZZhang和Blum提出了基於區域的融合規則,將圖像中每個像素均看作區域或邊緣的一部分,並用區域和邊界等圖像信息來指導融合選取。採用這種融合規則所得到的融合效果較好,但此規則相對其他融合規則要複雜。對於複雜的圖像,此規則不易於實現。

  4.4 圖像融合方法

  迄今爲止,數據融合方法主要是在像元級和特徵級上進行的。常用的融合方法有HIS融合法、KL變換融合法、高通濾波融合法、小波變換融合法、金字塔變換融合法、樣條變換融合法等。下面簡要介紹其中的幾種方法。

  (1) HIS融合法

  HIS融合法在多傳感器影象像元融合方面應用較廣,例如:一低分辨率三波段圖象與一高分辨率單波段圖象進行  融合處理。這種方法將三個波段的低分辨率的數據通過HIS變換轉換到HIS空間,同時將單波段高分辨率圖象進行對比度拉伸以使其灰度的均值與方差和HIS空間中亮度分量圖象一致,然後將拉伸過的高分辨率圖象作爲新的亮度分量代入HIS反變換到原始空間中。這樣獲得的高分辨率彩色圖象既具有較高空間分辨率,同時又具有與影象相同的色調和飽和度,有利於目視解譯和計算機識別。

  (2)  KL變換融合法

  KL變換融合法又稱爲主成分分析法。與HIS變換法類似,它將低分辨率的圖象(三個波段或更多)作爲輸入分量進行主成分分析,而將高分辨率圖象拉伸使其具有於第一主成分相同的均值和方差,然後用拉伸後的高分辨率影象代替主成分變換的第一分量進行逆變換。高空間分辨率數據與高光譜分辨率數據通過融合得到的新的數據包含了源圖象的高分辨率和高光譜分辨率特徵,保留了原圖象的高頻信息。這樣,融合圖象上目標細部特徵更加清晰,光譜信息更加豐富。

  (3)  高通濾波融合法

  高通濾波融合法將高分辨率圖象中的邊緣信息提取出來,加入到低分辨率高光譜圖象中。首先,通過高通濾波器提取高分辨率圖象中的高頻分量,然後將高通濾波結果加入到高光譜分辨率的圖象中,形成高頻特徵信息突出的融合影象。                         

  (4) 小波變換融合法

  利用離散的小波變換,將N幅待融合的圖象的每一幅分解成M幅子圖象,然後在每一級上對來自N幅待融合圖象的M幅子圖象進行融合,得到該級的融合圖象。在得到所有M級的融合圖象後,實施逆變換得到融合結果。

  4.5 圖像融合步驟

  目前國內外己有大量圖像融合技術的研究報道,不論應用何種技術方法,必須遵守的基本原則是兩張或多張圖像上對應的每一點都應對位準確。由於研究對象、目的不同,圖像融合方法亦可多種多樣,其主要步驟歸納如下:

  (1) 預處理:對獲取的兩種圖像數據進行去噪、增強等處理,統一數據格式、圖像大小和分辨率。對序列斷層圖像作三維重建和顯示,根據目標特點建立數學模型;

圖像拼接算法及實現(續) - 清風 - 清風的博客
 SHAPE  \* MERGEFORMAT 

圖3-1 圖像融合步驟示意圖

  (2) 分割目標和選擇配準特徵點:在二維或三維情況下,對目標物或興趣區進行分割。選取的特點應是同一物理標記在兩個圖像上的對應點,該物理標記可以是人工標記,也可以是人體解剖特徵點;

  (3 )利用特徵點進行圖像配準:可視作兩個數據集間的線性或非線性變換,使變換後的兩個數據集的誤差達到某種準則的最小值;

  (4) 融合圖像創建:配準後的兩種模式的圖像在同一座標系下將各自的有用信息融合表達成二維或三維圖像;

  (5) 參數提取:從融合圖像中提取和測量特徵參數,定性、定量分析

  4.6 本章小結

  本章主要介紹了圖像融合的概念,方法以及步驟。

  第五章  圖像拼接matlab實現

  5.1  Matlab簡介

  MATLAB 的名稱源自 Matrix Laboratory ,它是一種科學計算軟件,專門以矩陣的形式處理數據。 MATLAB 將高性能的數值計算和可視化集成在一起,並提供了大量的內置函數,從而被廣泛地應用於科學計算、控制系統、信息處理等領域的分析、仿真和設計工作,而且利用 MATLAB 產品的開放式結構,可以非常容易地對 MATLAB 的功能進行擴充,從而在不斷深化對問題認識的同時,不斷完善 MATLAB 產品以提高產品自身的競爭能力。

  Matlab語言有如下特點: 
  1.編程效率高 
   它是一種面向科學與工程計算的高級語言,允許用數學形式的語言編寫程序,且比Basic、Fortran和C等語言更加接近我們書寫計算公式的思維方式,用Matlab編寫程序猶如在演算紙上排列出公式與求解問題。Matlab編寫簡單,所以編程效率高,易學易懂。 
  2.用戶使用方便 
   Matlab語言是一種解釋執行的語言(在沒被專門的工具編譯之前),它靈活、方便,其調試程序手段豐富,調試速度快,需要學習時間少。人們用任何一種語言編寫程序和調試程序一般都要經過四個步驟:編輯、編譯、連接以及執行和調試。各個步驟之間是順序關係,編程的過程就是在它們之間作瀑布型的循環。

  3.擴充能力強

  高版本的Matlab語言有豐富的庫函數,在進行復雜的數學運算時可以直接調用,而且Matlab的庫函數同用戶文件在形成上一樣,所以用戶文件也可作爲Matlab的庫函數來調用。

  4.語句簡單,內涵豐富

  Mat1ab語言中最基本最重要的成分是函數,其一般形式爲[a,6,c……] = fun(d,e,f,……),即一個函數由函數名,輸入變量d,e,f,……和輸出變量a,b,c……組成,同一函數名F,不同數目的輸入變量(包括無輸入變量)及不同數目的輸出變量,代表着不同的含義(有點像面向對象中的多態性。。 
  5.高效方便的矩陣和數組運算 
   Matlab語言象Basic、Fortran和C語言一樣規定了矩陣的算術運算符、關係運算符、邏輯運算符、條件運算符及賦值運算符,而且這些運算符大部分可以毫無改變地照搬到數組間的運算,有些如算術運算符只要增加“·”就可用於數組間的運算,另外,它不需定義數組的維數,並給出矩陣函數、特殊矩陣專門的庫函數,使之在求解諸如信號處理、建模、系統識別、控制、優化等領域的問題時,顯得大爲簡捷、高效、方便,這是其它高級語言所不能比擬的。

  6.方便的繪圖功能

  Matlab的繪圖是十分方便的,它有一系列繪圖函數(命令),例如線性座標、對數座標,半對數座標及極座標,均只需調用不同的繪圖函數(命令),在圖上標出圖題、XY軸標註,格(柵)繪製也只需調用相應的命令,簡單易行。另外,在調用繪圖函數時調整自變量可繪出不變顏色的點、線、複線或多重線。這種爲科學研究着想的設計是通用的編程語言所不及的。

  總之,Matlab語言的設計思想可以說代表了當前計算機高級語言的發展方向。我們相信,在不斷使用中,讀者會發現它的巨大潛力。因此本文采用matlab來實現本文的算法。

  5.2  各算法程序

  5.2.1   一般方法

  圖像融合是通過一個數學模型把來自不同傳感器的多幅圖像綜合成一幅滿足特定應用需求的圖像的過程,從而可以有效地把不同圖像傳感器的優點結合起來,提高對圖像信息分析和提取的能力。簡單的圖像融合方法不對參加融合的源圖像進行任何變換和分解,而是直接對源圖像中的各對應像素分別進行選擇、平均或加權平均、多元迴歸或其它數學運算等處理後,最終合成一幅融合圖像。

  對於圖像融合的對象,可以分爲兩大類,即多光譜圖像(通常爲RGB彩色圖像)與灰度圖像之間的融合,以及灰度圖像之間的融合。灰度圖像之間的融合,在大體上可分爲三大類。一類是簡單融合方法,包括將空間對準的兩幅圖像直接求加權平均值。另一類方法是基於金字塔形分解和重建算法的融合方法,主要包括梯度金字塔法、對比度和比率金字塔法以及拉普拉斯金字塔法等,它們首先構造輸入圖像的金字塔,再按一定的特徵選擇方法取值形成融合金字塔,通過對金字塔實施逆變換進行圖像重建,最終生成融合圖像,它們的融合效果要遠優於第一類方法,然而它也有很多不盡如人意的地方。還有一類方法就是近幾年興起的基於小波變換的圖像融合方法,它通常採用多分辨分析和Mallat快速算法,通過在各層的特徵域上進行有針對性的融合,比較容易提取原始圖像的結構信息和細節信息,所以融合效果要好於基於金字塔形變換的圖像融合法。這是因爲小波變換更爲緊湊;小波表達式提供了方向信息,而金字塔表達式未將空間方向選擇性引入分解過程;由於可以選擇正交小波核,因此不同分辨率包含的信息是唯一的,而金字塔分解在兩個不同的尺度之間含有冗餘,另外金字塔不同級的數據相關,很難知道兩級之間的相似性是由於冗餘還是圖像本身的性質引起的;金字塔的重構過程可能具有不穩定性,特別是兩幅圖像存在明顯差異區域時,融合圖像會出現斑塊,而小波變換圖像融合則沒有類似的問題。此外,小波變換具function Y = fuse_pca(M1, M2)

%Y = fuse_pca(M1, M2) image fusion with PCA method

%

%    M1 - input image #1

%    M2 - input image #2

%

%    Y  - fused image  


%    (Oliver Rockinger 16.08.99)


% check inputs

[z1 s1] = size(M1);

[z2 s2] = size(M2);

if (z1 ~= z2) | (s1 ~= s2)

  error('Input images are not of same size');

end;


% compute, select & normalize eigenvalues

[V, D] = eig(cov([M1(:) M2(:)]));

if (D(1,1) > D(2,2))

  a = V(:,1)./sum(V(:,1));

else 

  a = V(:,2)./sum(V(:,2));

end;


% and fuse

Y = a(1)*M1+a(2)*M2;

  5.2.3   金字塔(Pyramid)算法程序

  金字塔圖像融合法:用金字塔在空間上表示圖像是一種簡單方便的方法。概括地說金字塔圖像融合法就是將參加融合的每幅源圖像作金字塔表示,將所有圖像的金字塔表示在各相應層上以一定的融合規則融合,可得到合成的金字塔。將合成的金字塔,用金字塔生成的逆過程重構圖像,則可得到融合圖像。金字塔可分爲:Laplacian金字塔、Gaussian金字塔、梯度金字塔、數學形態金字塔等。

基於FSD Pyramid的圖像融合算法程序:

function Y = fuse_fsd(M1, M2, zt, ap, mp)

%Y = fuse_fsd(M1, M2, zt, ap, mp) image fusion with fsd pyramid

%

%    M1 - input image A

%    M2 - input image B

%    zt - maximum decomposition level

%    ap - coefficient selection highpass (see selc.m)

%    mp - coefficient selection base image (see selb.m)

%

%    Y  - fused image  


%    (Oliver Rockinger 16.08.99)


% check inputs

[z1 s1] = size(M1);

[z2 s2] = size(M2);

if (z1 ~= z2) | (s1 ~= s2)

  error('Input images are not of same size');

end;


% define filter

w  = [1 4 6 4 1] / 16;


% cells for selected images

E = cell(1,zt);


% loop over decomposition depth -> analysis

for i1 = 1:zt

  % calculate and store actual image size

  [z s]  = size(M1);

  zl(i1) = z; sl(i1)  = s;


  % check if image expansion necessary

  if (floor(z/2) ~= z/2), ew(1) = 1; else, ew(1) = 0; end;

  if (floor(s/2) ~= s/2), ew(2) = 1; else, ew(2) = 0; end;


  % perform expansion if necessary

  if (any(ew))

     M1 = adb(M1,ew);

     M2 = adb(M2,ew);

  end;   

  % perform filtering

  G1 = conv2(conv2(es2(M1,2), w, 'valid'),w', 'valid');

  G2 = conv2(conv2(es2(M2,2), w, 'valid'),w', 'valid');

   % select coefficients and store them

  E(i1) = {selc(M1-G1, M2-G2, ap)};

  % decimate

  M1 = dec2(G1);

  M2 = dec2(G2);

end;

% select base coefficients of last decompostion stage

M1 = selb(M1,M2,mp);


% loop over decomposition depth -> synthesis

for i1 = zt:-1:1

  % undecimate and interpolate

  M1T = conv2(conv2(es2(undec2(M1), 2), 2*w, 'valid'), 2*w', 'valid');

  % add coefficients

  M1  = M1T + E{i1};

  % select valid image region

  M1    = M1(1:zl(i1),1:sl(i1));

end;


% copy image

Y = M1;

5.2 .4  小波變換(DWT)算法程序

  在衆多的圖像融合技術中,基於小波變換的圖像融合方法已成爲現今研究的一個熱點。這類算法主要是利用人眼對局部對比度的變化比較敏感這一事實,根據一定的融合規則,在多幅原圖像中選擇出最顯著的特徵,例如邊緣、線段等,並將這些特徵保留在最終的合成圖像中。在一幅圖像的小波變換中,絕對值較大的小波係數對應於邊緣這些較爲顯著的特徵,所以大部分基於小波變換的圖像融合算法主要研究如何選擇合成圖像中的小波係數,也就是三個方向上的高頻係數,從而達到保留圖像邊緣的目的。雖然小波係數(高頻係數)的選擇對於保留圖像的邊緣等特徵具有非常主要的作用,但尺度係數(低頻係數)決定了圖像的輪廓,正確地選擇尺度係數對提高合成圖像的視覺效果具有舉足輕重的作用。

  基於SIDWT(Shift Invariance Discrete Wavelet Transform)小波變換的算法程序:

function Y = fuse_sih(M1, M2, zt, ap, mp)

%Y = fuse_sih(M1, M2, zt, ap, mp) image fusion with SIDWT, Wavelet is Haar

%

%    M1 - input image A

%    M2 - input image B

%    zt - maximum decomposition level

%    ap - coefficient selection highpass (see selc.m)

%    mp - coefficient selection base image (see selb.m)

%

%    Y  - fused image  


%    (Oliver Rockinger 16.08.99)


% check inputs

[z1 s1] = size(M1);

[z2 s2] = size(M2);

if (z1 ~= z2) | (s1 ~= s2)

  error('Input images are not of same size');

end;

% cells for selected images

E = cell(3,zt);

% loop over decomposition depth -> analysis

for i1 = 1:zt

  % calculate and store actual image size

  [z s]  = size(M1);

  zl(i1) = z; sl(i1)  = s;

  % define actual filters (inserting zeros between coefficients)

  h1 = [zeros(1,floor(2^(i1-2))), 0.5, zeros(1,floor(2^(i1-1)-1)), 0.5, zeros(1,max([floor(2^(i1-2)),1]))];

  g1 = [zeros(1,floor(2^(i1-2))), 0.5, zeros(1,floor(2^(i1-1)-1)), -0.5, zeros(1,max([floor(2^(i1-2)),1]))];

  fh = floor(length(h1)/2);

  % image A

  Z1 = conv2(es(M1, fh, 1), g1, 'valid');

  A1 = conv2(es(Z1, fh, 2), g1','valid');

  A2 = conv2(es(Z1, fh, 2), h1','valid');

  Z1 = conv2(es(M1, fh, 1), h1, 'valid');

  A3 = conv2(es(Z1, fh, 2), g1','valid');

  A4 = conv2(es(Z1, fh, 2), h1','valid');

  % image B

  Z1 = conv2(es(M2, fh, 1), g1, 'valid');

  B1 = conv2(es(Z1, fh, 2), g1','valid');

  B2 = conv2(es(Z1, fh, 2), h1','valid');

  Z1 = conv2(es(M2, fh, 1), h1, 'valid');

  B3 = conv2(es(Z1, fh, 2), g1','valid');

  B4 = conv2(es(Z1, fh, 2), h1','valid');

   % select coefficients and store them

  E(1,i1) = {selc(A1, B1, ap)};

      E(2,i1) = {selc(A2, B2, ap)};

      E(3,i1) = {selc(A3, B3, ap)};

      % copy input image for next decomposition stage

  M1 = A4; 

  M2 = B4;  

end;

% select base coefficients of last decompostion stage

A4 = selb(A4,B4,mp);

% loop over decomposition depth -> synthesis

for i1 = zt:-1:1

       % define actual filters (inserting zeros between coefficients)

  h2 = fliplr([zeros(1,floor(2^(i1-2))), 0.5, zeros(1,floor(2^(i1-1)-1)), 0.5, zeros(1,max([floor(2^(i1-2)),1]))]);

  g2 = fliplr([zeros(1,floor(2^(i1-2))), 0.5, zeros(1,floor(2^(i1-1)-1)), -0.5, zeros(1,max([floor(2^(i1-2)),1]))]);

  fh = floor(length(h2)/2);

  % filter (rows)

  A4 = conv2(es(A4, fh, 2), h2', 'valid');  

  A3 = conv2(es(E{3,i1}, fh, 2), g2', 'valid');

  A2 = conv2(es(E{2,i1}, fh, 2), h2', 'valid');

  A1 = conv2(es(E{1,i1}, fh, 2), g2', 'valid');

  % filter (columns) 

  A4 = conv2(es(A4+A3, fh, 1), h2, 'valid'); 

  A2 = conv2(es(A2+A1, fh, 1), g2, 'valid'); 

  % add images

  A4 = A4 + A2;

end;

% copy image

Y = A4;

  5.3實驗結果

   下面將本文的算法用於多聚焦圖像的融合。多聚焦圖像指的是對相同的場景用不同的焦距進行拍攝,得到鏡頭聚焦目標不同的多個圖像。經過圖像融合技術後,就可以得到一個所有目標都聚焦清晰的圖像。圖5-1中左邊的目標較爲清晰,圖5-2中右邊的目標較爲清晰。

圖像拼接算法及實現(續) - 清風 - 清風的博客

圖5-1 聚焦在左邊的圖像

圖像拼接算法及實現(續) - 清風 - 清風的博客

圖5-2 聚焦在右邊的圖像

  我們分別利用基於PCA的算法、金字塔圖像融合法和小波變換法的算法程序得到的的融合圖像結果,如圖5-3、圖5-4、圖5-5所示

圖像拼接算法及實現(續) - 清風 - 清風的博客

圖5-3 基於PCA算法的融合圖像

圖像拼接算法及實現(續) - 清風 - 清風的博客

圖5-4 基於金字塔圖像融合算法的融合圖像

圖像拼接算法及實現(續) - 清風 - 清風的博客

圖5-5 基於SIDWT小波變換的融合圖像

    從實驗結果可以看出,三種方案都可以得到較滿意的視覺效果,消除了原圖像的聚焦差異,提高了圖像的清晰度,在合成圖像中左、右兩邊的目標都很清晰。但通過比較分析,我們可以看出基於小波變換的融合圖像(圖5-5)最爲清晰,所表現的圖像細節效果最好,重影現象消除得最乾淨。圖5-3的清晰度不夠,而圖5-4的細節表現力較弱,只有圖5-5的邊緣最清晰,重影消除地最乾淨,細節得到了最好地保留。

  第六章  總結與展望

  6.1 本論文工作的總結

    圖像拼接技術一直是計算機視覺、圖像處理和計算機圖形學的熱點研究方向。它可以用來建立大視角的高分辨率圖像,在虛擬現實領域、醫學圖像處理領域、遙感技術領域和軍事領域中均有廣泛的應用。

    本文總結了前人在圖像拼接領域的研究成果和研究現狀,按照圖像拼接的流程(圖像預處理、圖像配準和圖像融合),詳細介紹了圖像拼接技術,主要完成的工作有:(1)圖像預處理主要指對圖像進行幾何畸變校正和噪聲點的抑制等,讓參考圖像和待拼接圖像不存在明顯的幾何畸變。

  (2)圖像配準主要指對參考圖像和待拼接圖像中的匹配信息進行提取,在提取出的信息中尋找最佳的匹配,完成圖像間的對齊。圖像配準是圖像拼接技術中的核心部分。本文分析了現有的多種圖像配准算法。   

  (3)圖像融合指在完成圖像匹配以後,對圖像進行縫合,並對縫合的邊界進行平滑處理,讓縫合自然過渡。

    (4)論文的最後簡要介紹了利用matlab實現的圖像拼接軟件,該軟件實現了本文討論到的所有方法。

  6.2展望

  經過3個月的研究,本文對圖像拼接技術的研究涉及到了現有圖像拼接領域的大多方法。但對於這一研究領域來說,本文所作的工作只是滄海一粟。事實上,還有很多圖像拼接問題值得去研究和解決,由於時間的關係,本文沒有做進一步的研究。

    根據圖像拼接技術的研究體會,本人認爲以下幾個方面有待於進一步研究:

    (1)本文的圖像拼接算法的研究,是基於兩幅圖像間重疊區域並不存在運動的物體的假設的。但是在有些情況下,待拼接的圖像採集過程中,會有運動的物體出現。如果在重疊區域存在運動物體的情況下,如何消除運動物體對拼接圖像帶來的影響例如,兩幅圖像因爲重疊區域的運動物體,在合成的圖像中該區域出現重影),是需要進一步研究的問題。

    (2)本文討論的圖像拼接算法,並不是針對特定圖像的研究。但是,圖像拼接在用於實際應用的時候,有時是針對某一特定的圖像。如何通過特定目標的特徵從圖像中提取出特定目標(例如,人臉、足球),以此來幫助完成圖像拼接,這需要加深對圖像中特定目標的理解和分割。因此,如何更好的理解圖像,分割出特定圖像中的目標物體,通過特徵物體的配準來完成圖像拼接,是一個可以重點研究的方向。

參考文獻

1.鍾力,胡曉峯.重疊圖像拼接算法.中國圖像圖形學報.1998/5/3

2. L. G. Brown. A survey of image registration techniques. ACM Computer

    Surveys, 1992/4/24

3.陳永強,王啓付.虛擬環境中變形圖像拼接技術研究.華中科技大學學報.2001/1/29

4. Richard Szeliski. Video mosaics for virtual environments. Computer

Graphics and Applications, IEEE, Mar 1996.

5.於爲,鬱道銀,鄒羣峯.醫學超聲圖像的處理與拼接.中國生物醫學上程學報,1999

6.王小睿,吳信才.遙感多圖像的自動配準方法.中國圖像圖形學報,1997/10/2

7.封靖波,蘇志勳,劉秀平.一種基於相似曲線的全景圖自動拼接算法.計算機學報.2003/11

8. Barbara Zitova, Jan Flusser. Image registration methods:a survey. Imaging and Vision Computing,2003, vo1.21,pp. 977-1000.

9. B. K. Ghaffary, A. A. Sawchuk. A survey of new techniques for I mageregistration and mapping, Proceedings of the SPIE:Applications of Digital Image Processing, Eng.432,1983, pp. 222-239.

10 孫家廣 等,計算機圖形學(第三版),清華大學出版社,1998/9。

11  陳傳波,陸楓,計算機圖形學基礎,電子工業出版社, 2004/2。

12 任愛華,計算機圖形學,北京航空航天大學出版社,2005/12。

13 王偉,陸佩忠,數字圖像拼接技術,小型微型計算機系統,2006/6。

14 高文,陳熙霖,計算機視覺,清華大學出版社與廣西科學技術出版社。1999/2。

15 劉靜華,王永生,陸國棟,陳超,計算機繪圖,高等教育出版社,2006/5。

16 王小睿,吳信才.遙感多圖像的自動配準方法.中國圖像圖形學報,1997

17數字圖象處理:MATLAB版:using MATLAB

18 MATLAB 6.1基礎及應用技巧    李海濤, 鄧櫻編著    北京:國防工業出版社,2002

19 MATLAB 6.5輔助圖像處理     飛思科技產品研發中心編著    北京:電子工業出版社,2003

20 Matlab工具箱應用指南.控制工程篇    徐昕, 李濤, 伯曉晨等編著   北京:電子工業出版社,2000

21 Matlab信號處理與應用    董長虹主編    北京:國防工業出版社,2005


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章