【圖像融合】基于SIFT結(jié)合小波變換實現(xiàn)圖像拼接融合系統(tǒng)含Matlab源碼
1 簡介
隨著新型傳感器的飛速發(fā)展,人們獲取圖像的能力也迅速提高,但是一種圖像數(shù)據(jù)或者單一的傳感器所獲得的圖像信息往往無法滿足實際需求.圖像拼接就是指將兩個或兩個以上關(guān)于某個具體場景的具有重疊區(qū)域的多幅圖像加以綜合,以生成新的有關(guān)此場景的更大視角范圍的圖像.圖像拼接中的兩個關(guān)鍵技術(shù)是圖像配準(zhǔn)和圖像融合,圖像配準(zhǔn)和融合的關(guān)系十分緊密.圖像配準(zhǔn)是圖像融合的先決條件,為了實現(xiàn)準(zhǔn)確的圖像融合,必須先對圖像進(jìn)行配準(zhǔn)變換.圖像配準(zhǔn)和融合廣泛應(yīng)用于醫(yī)學(xué),遙感,航空航天和虛擬現(xiàn)實等領(lǐng)域,是其他技術(shù)無法取代的重要技術(shù). 本文總結(jié)了基于特征的圖像拼接中所用到的相關(guān)技術(shù).基于特征的圖像拼接的基本步驟包括:特征提取,特征匹配,模型參數(shù)估計,圖像變換.文中以圖像配準(zhǔn)與融合的每個步驟中的相關(guān)方法為基礎(chǔ),著重闡述了基于SIFT特征的圖像配準(zhǔn)和基于小波變換的圖像融合相關(guān)算法.?
Lowe?于?1999?年正式提出的?SIFT(Scale invariant features transform)算法,對一些在匹配過程中遇到的關(guān)鍵性問題找到了很好的處理方法,因其?SIFT?算子具有放縮、旋轉(zhuǎn)和仿射不變性的特點,并且對光照變化和視點變化有不錯的適應(yīng)性,魯棒性良好。而?Mikolajczyk?團(tuán)隊研究人員通過對多種特征描述算子的特點和性能分析后,也證實了這一點,認(rèn)為其最佳,因此對其進(jìn)行研究也是一個熱點的問題。SIFT?算法第一步要建立高斯尺度空間,即高斯差分金字塔,接著進(jìn)行極值點的檢測,然后對特征點所處的位置及尺度做進(jìn)一步的處理以達(dá)到精確定位要求,再對所得特征點計算其鄰域梯度,用算出的值作為參數(shù)來確定其主方向,最后得到?SIFT?特征描述符,此時其維數(shù)是?128?維。在完成上述處理后,就可以進(jìn)行特征向量匹配,其基本流程可用圖所示。

小波變換在圖像處理領(lǐng)域具有廣泛的應(yīng)用,其在圖像融合方面也是會經(jīng)常用到的。小波的概念是由法國科學(xué)家 J.Morlet 于 1974 年首次提出,之后作為一個全新的數(shù)學(xué)分支迅猛的成長起來。通過小波變換之后能夠非常準(zhǔn)確地提取出信號中的有用的信息,加上小波變換能夠?qū)崿F(xiàn)對目標(biāo)對象“聚焦”的功效,所以能達(dá)到使信號多尺度細(xì)化的用處,從而實現(xiàn)其能夠統(tǒng)一在時間域和頻率域的步調(diào),同時能夠把頻率域進(jìn)行正交分解。在小波變換的圖像融合過程中,將不同的規(guī)則用于不同的頻率域,使得源圖像中的有用信息充分的保留在了合成圖像里,得到了良好的融合效果,提高了圖像拼接的質(zhì)量。
2 部分代碼
function [ imgout ] = imMosaic( img1,img2,adjColor )
%[ imgout ] = imMosaic( img1,img2,adjColor )
% ?img1 and img2 can (both) be rgb or gray, double or uint8.
% ?If you have more than 2 images to do mosaic, call this function several
% ?times.
% ?If you set adjColor to 1, imMosaic will try to try to adjust the
% ?color(for rgb) or grayscale(for gray image) of img1 linearly, so the 2
% ?images can join more naturally.
% ?Yan Ke @ THUEE, 20110123, xjed09@gmail.com
% use SIFT to find corresponding points
[matchLoc1 matchLoc2] = siftMatch(img1, img2);
% use RANSAC to find homography matrix
[H corrPtIdx] = findHomography(matchLoc2',matchLoc1');
H ?%#ok
tform = maketform('projective',H');
img21 = imtransform(img2,tform); % reproject img2
%figure,imshow(img1)
%figure,imshow(img21)
% adjust color or grayscale linearly, using corresponding infomation
[M1 N1 dim] = size(img1);
[M2 N2 ~] = size(img2);
if exist('adjColor','var') && adjColor == 1
?radius = 2;
?x1ctrl = matchLoc1(corrPtIdx,1);
?y1ctrl = matchLoc1(corrPtIdx,2);
?x2ctrl = matchLoc2(corrPtIdx,1);
?y2ctrl = matchLoc2(corrPtIdx,2);
?ctrlLen = length(corrPtIdx);
?s1 = zeros(1,ctrlLen);
?s2 = zeros(1,ctrlLen);
?for color = 1:dim
? ?for p = 1:ctrlLen
? ? ?left = round(max(1,x1ctrl(p)-radius));
? ? ?right = round(min(N1,left+radius+1));
? ? ?up = round(max(1,y1ctrl(p)-radius));
? ? ?down = round(min(M1,up+radius+1));
? ? ?s1(p) = sum(sum(img1(up:down,left:right,color))); % 取四周點色度
? ?end
? ?for p = 1:ctrlLen
? ? ?left = round(max(1,x2ctrl(p)-radius));
? ? ?right = round(min(N2,left+radius+1));
? ? ?up = round(max(1,y2ctrl(p)-radius));
? ? ?down = round(min(M2,up+radius+1));
? ? ?s2(p) = sum(sum(img2(up:down,left:right,color)));
? ?end
? ?sc = (radius*2+1)^2*ctrlLen;
? ?adjcoef = polyfit(s1/sc,s2/sc,1);
? ?img1(:,:,color) = img1(:,:,color)*adjcoef(1)+adjcoef(2);
?end
end
% do the mosaic
pt = zeros(3,4);
pt(:,1) = H*[1;1;1];
pt(:,2) = H*[N2;1;1];
pt(:,3) = H*[N2;M2;1];
pt(:,4) = H*[1;M2;1];
x2 = pt(1,:)./pt(3,:);
y2 = pt(2,:)./pt(3,:);
up = round(min(y2));
Yoffset = 0;
if up <= 0
?Yoffset = -up+1;
?up = 1;
end
left = round(min(x2));
Xoffset = 0;
if left<=0
?Xoffset = -left+1;
?left = 1;
end
[M3 N3 ~] = size(img21);
imgout(up:up+M3-1,left:left+N3-1,:) = img21;
?% img1 is above img21
imgout(Yoffset+1:Yoffset+M1,Xoffset+1:Xoffset+N1,:) = img1;
end
3 仿真結(jié)果

4 參考文獻(xiàn)
[1]陳燕文. 基于SIFT與小波變換的圖像配準(zhǔn)融合方法研究[D]. 武漢理工大學(xué), 2011.
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動機、圖像處理、路徑規(guī)劃、無人機等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。
