




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上摘 要圖像匹配在遙感、醫(yī)學(xué)、計算機(jī)視覺等很多領(lǐng)域中有著廣泛的應(yīng)用,是提取和匹配圖像特征是實現(xiàn)圖像自動配準(zhǔn)的一種重要方法。SIFT(尺度不變特性變換,Scale Invariant Feature Transform)最初是作為一種關(guān)鍵點的特征提取出來的,其匹配能力較強(qiáng),可以處理兩幅圖像之間發(fā)生平移、旋轉(zhuǎn)、防輻射4等變換情況下的匹配問題,甚至在某種程度上對任意角度拍攝的圖像也具備較為穩(wěn)定的特征匹配能力。作為一種優(yōu)秀的局部特征描述子,SIFT算子被廣泛應(yīng)用于目標(biāo)識別、圖像配準(zhǔn)、室內(nèi)場景定位等場合。論文著重介紹了一種基于圖像特征值的匹配方法(SIFT算法),包括SIFT算法
2、的發(fā)展歷史,算法特點,主要思想和實現(xiàn)步驟,然后實現(xiàn)SIFT特征點提取,以尋找一種優(yōu)化算法,減少SIFT的算法復(fù)雜度。(介紹用什么實驗,得到什么結(jié)論)關(guān)鍵詞:SIFT算法,特征匹配,特征點提取專心-專注-專業(yè)AstractIn remote sensing image matching, medical, computer vision many adjacent domain in a wide range of applications, Extraction and matching image characteristics is to realize the automatic ima
3、ge registration is a kind of important method . SIFT was originally as a key point for feature extraction of come out, its matching with the strong ability can handle two images occur between translation, rotation and anti-radiation such transformation under the circumstance of the matching problem,
4、 even in some extent of arbitrary Angle photographs of image and also has a relatively stable feature matching ability. As a kind of excellent local characteristics description son, SIFT operators are widely used in target recognition, image registration, indoor scene positioning and so on. This pap
5、er mainly introduces a method based on image eigenvalue of matching method (SIFT algorithm). Including SIFT algorithm development history, algorithm characteristics, main ideas and implementation steps and then realized SIFT feature point extraction to find an optimization algorithm to reduce SIFT a
6、lgorithm complexity .(請不要直譯)Keywords:SIFT algorithm, feature matching, feature point extraction, simplified algorithm. 目 錄摘 要I第1章 緒論11.1 課題背景11.2目的意義11.3研究內(nèi)容及結(jié)構(gòu)安排2第2章 智能優(yōu)化方法32.1 基于蟻群的優(yōu)化算法32.2 基于魚群的優(yōu)化算法32.3 基于神經(jīng)網(wǎng)絡(luò)的優(yōu)化算法32.4 本章小結(jié)3第3章 SIFT基本算法43.1 構(gòu)建尺度空間53.2局部極值點的檢測73.3 極值點的方向分配73.4特征點描述子的生成83.5 SIFT算法的
7、擴(kuò)展93.6 本章小結(jié)10第4章 SIFT算法的改進(jìn)方案114.1 SIFT簡化算法介紹114.2 SIFT簡化算法124.3 本章小結(jié)14第5章 實驗結(jié)果及分析155.1 簡化算法不變性測試155.2 描述子維數(shù)的選擇155.3改進(jìn)算法的時間復(fù)雜度155.4 本章小結(jié)15致 謝16參考文獻(xiàn)17附錄18第1章 緒論1.1 課題背景SIFT(Scale Invariant Feature Transform)算法由D.GLowe8于1999年提出,2004年哥倫比亞大學(xué)的David Lowe7提出了一種新的提取特征點的算法SIFT算法。后來,Y。ke將其描述子部分用PCA代替直方圖的方式,對SI
8、FT算法進(jìn)行改進(jìn),目前基于改進(jìn)SIFT特征點的算法在圖像處理中的應(yīng)用越來越廣泛,而且近年來這方面的研究也取得了很大的成果。較好的解決了物體遮掩、旋轉(zhuǎn)縮放、視覺變換引起的圖像變形等問題。本文主要針對圖像匹配中的SIFT算法進(jìn)行研究,然后將圖片編程到OPENCV軟件中,并借助gsl來實現(xiàn)改進(jìn)的SIFT算法1的可用性。1.2目的意義 在圖像提取算法百花齊放的時候,SIFT算法作為一個嶄新特征提取的技術(shù),具有強(qiáng)大和精確的匹配能力和廣闊的發(fā)展和應(yīng)用空間。對SIFT算法的改進(jìn)和優(yōu)化方法也有很多,如降低特征向量維數(shù),增強(qiáng)算法的獨特性和魯棒性等。目前新型改進(jìn)算法CSIFT,將SIFT與顏色不變量相結(jié)合19。S
9、IFT算子的應(yīng)用鄰域很廣泛,目前已應(yīng)用于目標(biāo)識別、移動物體識別和圖像配準(zhǔn)和全景拼接等鄰域,并仍有很大研究潛力;尤其在圖像檢索中的應(yīng)用研究也有很廣泛的應(yīng)用意義和價值。因此SIFT算法將在以后將被更多研究者深入的研究,并具有更實用的應(yīng)用價值。圖像配準(zhǔn)2的用處很廣泛,其技術(shù)廣泛應(yīng)用于計算機(jī)視覺3、目標(biāo)跟蹤、醫(yī)療診斷等許多方面。景象匹配技術(shù)給予圖像匹配的原理,以其定位的精確度在理論上與射程無關(guān)和自主性強(qiáng)等特點,成為組合導(dǎo)航中頗受重視的關(guān)鍵技術(shù)之一。在遙感領(lǐng)域,實現(xiàn)圖像融合、變化檢測、圖像校正、圖像鑲嵌等應(yīng)用中,圖像匹配都是必不可少的一個關(guān)鍵步驟。1.3研究內(nèi)容及結(jié)構(gòu)安排 第2章 智能優(yōu)化方法優(yōu)化算法簡
10、單介紹2.1 基于蟻群的優(yōu)化算法2.2 基于魚群的優(yōu)化算法 2.3 基于神經(jīng)網(wǎng)絡(luò)的優(yōu)化算法2.4 本章小結(jié)第3章 SIFT基本算法SIFT算法的發(fā)展歷程 SIFT算法由D.GLowe 1999年提出,2004年完善總結(jié)。后來Y.Ke將其描述子部分用PCA代替直方圖的方式,對其進(jìn)行改進(jìn)。SIFT算法的主要思想 SIFT算法是一種提取局部特征的算法,在尺度空間尋找極值點,提取位置,尺度,旋轉(zhuǎn)不變量。SIFT算法的主要特點:a) SIFT特征是圖像的局部特征,對其旋轉(zhuǎn)、尺度縮放、亮度變化保持不變性,對視覺變化、放射變化、噪聲也保持一定程度的穩(wěn)定性。b) 獨特性(Distinctiveness)好,信
11、息量豐富,適用于在海量特征數(shù)據(jù)中進(jìn)行快速、準(zhǔn)確的圖像匹配9。c) 多量性,即使少數(shù)的幾個物體,也可以產(chǎn)生大量的SIFT特征向量。d) 高速性,經(jīng)簡化的SIFT匹配算法可以達(dá)到實時性的要求。e) 可擴(kuò)展性,可以很方便的與其他形式的特征向量進(jìn)行聯(lián)合。SIFT(Scale Invariant Feature Transform)即尺度不變特征變換,它對于圖像的尺寸和旋轉(zhuǎn)保持不變性,以下是用來產(chǎn)生SIFT圖像特征的主要計算步驟: 1)尺度空間檢測極值點:計算的第一階段是搜索所有的尺度和圖像位置,使用高斯差分公式可以有效的檢測出潛在的特征點,這些特征點對于尺度縮放的旋轉(zhuǎn)變換具有不變性; 2)關(guān)鍵點的定位
12、:對于每個點,確定他們的位置和尺度; 3)確定關(guān)鍵點的方向:為每個關(guān)鍵點分配一個方向,以后所有對圖像的數(shù)據(jù)的操作都被轉(zhuǎn)換為對特征點方向、尺度和位置的操作,從而保證變化得不變性; 4)生成特征點描述子:通過對關(guān)鍵點當(dāng)前尺度周圍區(qū)域的梯度統(tǒng)計,生成特征點描述子。 下面詳細(xì)介紹SIFT算子特征提取的過程。3.1 構(gòu)建尺度空間 構(gòu)建尺度空間的目的是檢測對于圖像的尺度變化具有不變性的位置,可以使用尺度的連續(xù)函數(shù)也就是尺度空間在所有可能的尺度中尋找穩(wěn)定的特征,高斯卷積核實實現(xiàn)尺度變換的唯一線性核。因此,若I(x,y)為輸入圖像,G(x,y,)是尺度可變高斯函數(shù),則一個圖像的尺度空間被定義為函數(shù)L(x,y,
13、),見式(2.1)。 L(x,y,)= G(x,y,)*I(x,y) (2.1) 其中,為尺度因子,越大,表示圖像的概貌特征;越小,表明圖像的細(xì)節(jié)特征,*為卷積運(yùn)算。式(2.1)中的高斯函數(shù)G(x,y,)定義為式(2.2)。G(x,y,)=1/22 e-(x2+y2)/22 (2.2)為了在尺度空間中有效的檢測穩(wěn)定關(guān)鍵點的位置,Lowe提出了高斯差分卷積,高斯差分函數(shù)D(x,y,)可以通過不變倍增因子K的兩個相鄰尺度圖像差計算得出,見式(2.3)。D(x,y,)=(G(x,y,k)-G(x,y,))*I(x,y)=L(x,y,k)- L(x,y,) (2.3)選擇高斯差分函數(shù)的幾個優(yōu)點: 1)
14、計算效率高:由于L對于每個尺度空間都是需要計算的,而D只需在此基礎(chǔ)上做減法操作; 2)高斯差分函數(shù)DoG(differerce-of-Gaussian)是尺度歸一化算子LoG(Laplacian of Gaussian)的近似,Lindeberg證明具有因子2 的尺度歸一化算子LoG對于真正的尺度不變性是必須的。DoG于LoG關(guān)系如式(2.4)。 2G=G/GG(x,y,k)- G(x,y,)/( k-k) (2.4) 因此,G(x,y,k)- G(x,y,) (k-1)22G 式(2.5)中的(k-1)因子在所有的尺度中式一個常量,所以不會影響極值點的位置,當(dāng)k變?yōu)?時近似的誤差會趨近于零,
15、但是在試驗中發(fā)現(xiàn)近似值對于極值點檢測方面的穩(wěn)定性沒有什么影響。 3)實驗表明,從尺度歸一化LoG空間中提取的特征穩(wěn)定性最佳,優(yōu)于梯度、Hessian、Harris焦點函數(shù)6。不要直接貼圖,要自已畫D(x,y,)具體計算過程見圖2.3,初始圖像經(jīng)逐步高斯卷積運(yùn)算,得到一系列尺度空間,即高斯(Gaussian)尺度空間,也就是圖中左邊的一列,右邊一列表示由高斯制度空間經(jīng)差分運(yùn)算得到的高斯差分(DoG)尺度空間。尺度空間分為o階,每一階有s層。為了能再高斯差分(DoG)尺度空間的s層上檢測候選點,需要有s+2層的高斯差分尺度空間,因而對應(yīng)的高斯尺度空間需要為,則下一層尺度因子為k,故k=2I/s。在
16、產(chǎn)生了s+2個圖像后,頂層圖像有s+3層。如圖所展示的,s+3個高斯圖像產(chǎn)生s+2個高斯差分圖像,所以必須首先構(gòu)造s+3個高斯尺度圖像。這些圖像的尺度因子逐個以常數(shù)k倍遞增,即若當(dāng)前層圖像的尺度因子由原始圖像進(jìn)行了1:2的采樣計算得出。圖2.3中,左邊的o階尺度空間構(gòu)成高斯金字塔,右邊o階尺度空間構(gòu)成高斯差分金字塔。3.2局部極值點的檢測 為了檢測D(x,y,)的局部極大值和極小值,每個采樣點都要和它同尺度的8個相鄰點和上下相鄰尺寸對應(yīng)的92個點相比較。只有當(dāng)它比所有相鄰點都大或者都小的時候這個點菜被選擇。這個檢查的花費是相當(dāng)?shù)偷模驗榇蟛糠值牟蓸狱c在上一次檢查中就被淘汰了,見圖2.4所示。圖
17、要自已畫,圖標(biāo)移到圖外面來上一步被選擇的點稱為候選點,但是如果要進(jìn)行下一步確定關(guān)鍵點的位置、尺度、主曲率,還要剔除那些低對比(對噪聲很敏感)的點和處于邊緣的點。3.3 極值點的方向分配 通過為每個關(guān)鍵點分配一個統(tǒng)一的基于局部圖像屬性的方向,關(guān)鍵點描述子轉(zhuǎn)化為由它的方向來描述,從而實現(xiàn)圖像旋轉(zhuǎn)的不變性。這個方法了Schmid和Mohr(1997)的方向不變描述子5。這種方法的缺點是它限制了描述子的使用并拋棄了一部分圖像信息。 對于每一個采樣點L(x,y),計算其梯度模值m(x,y)和方向(x,y)的公式為式(2.14)和式(2.15)。m(x,y)= 2.14(x,y)=tan-1(L(x,y,
18、+1)-L(x,y-1))/(L(x+1,y)-L(x-1,y)) 2.15 為了進(jìn)一步精確關(guān)鍵點的方向,采用梯度直方圖統(tǒng)計法。以關(guān)鍵點為圓心,1.5為半徑的圓形區(qū)域中,統(tǒng)計關(guān)鍵點鄰域窗口的梯度值,并繪制梯度直方圖。其中梯度直方圖將360°分為36個單元(bin),每10°為一個單元。每個鄰域點對梯度方向的貢獻(xiàn)隨鄰域點與關(guān)鍵點的距離增加而減少,具體為成高斯函數(shù)遞增。直方圖的峰值處即為關(guān)鍵點的主方向。 在主方向被選定之后,梯度直方圖中還可能存在一個或一個以上峰值為主峰值的80%以上,為了增強(qiáng)匹配的魯棒性,可以增強(qiáng)一些關(guān)鍵點,這些關(guān)鍵點于原關(guān)鍵點具有相同位置和尺度,并將符合要求
19、的峰值作為其方向,只有15%關(guān)鍵點才具有多個方向。3.4特征點描述子的生成我們已經(jīng)計算了關(guān)鍵點的位置、尺度和方向,下一步是要確定關(guān)鍵點描述子,特征點描述子的生成過程具體如下:鍵點為圓心將關(guān)鍵點鄰域旋轉(zhuǎn)°,其中為關(guān)鍵點的方向,從而保證了旋轉(zhuǎn)的不變性;在旋轉(zhuǎn)后的圖像中,以關(guān)鍵點的中心取1616的鄰域窗口,圖2.5中左圖即為關(guān)鍵點的鄰域窗口,每個小格代表關(guān)鍵點鄰域窗口中的一個像素,箭頭的長度為像素的模值,箭頭的方向為像素的方向,這個方向是旋轉(zhuǎn)后的像素方向,即-;將1616的矩形窗口均勻分為16個44個子區(qū)域,如圖2.5中右圖,采用高斯模糊的方法,高斯模糊的方法有利于增加與關(guān)鍵點較近鄰域的權(quán)
20、值,并降低與關(guān)鍵點較遠(yuǎn)鄰域的權(quán)值,然后計算每個林宇中8個方向的梯度累加值: 得到特征點描述子的特征向量為448=128維向量。經(jīng)過以上的變換,SIFT特征向量已經(jīng)剔除了尺度變換、旋轉(zhuǎn)變換的影響。3.5 SIFT算法的擴(kuò)展 SIFT算法具有很好的魯棒性和抗干擾性,有著廣泛的應(yīng)用,但是由于SIFT算子具有很高的維數(shù)(128維),增強(qiáng)了其計算復(fù)雜性和時間復(fù)雜度,并且在大規(guī)模特征數(shù)據(jù)庫的檢索中存在存儲壓力。國內(nèi)外研究學(xué)者針對其高維數(shù)的缺點,進(jìn)行了改進(jìn)和嘗試,以求在保持SIFT算子良好特征的前提下,盡量降低其維數(shù)。在這些研究中,較為有代表性的事PCA-SIFT和GLOH,兩者都是從這個方面入手,并且都采
21、用了PCA(Principal componment analysis)技術(shù)。 PCA技術(shù)11是通過對數(shù)據(jù)降維萊實現(xiàn)簡化的目的。通過一個正交矩陣變換把原數(shù)據(jù)變換到一個新的坐標(biāo)系統(tǒng)中,從而實現(xiàn)高維數(shù)數(shù)據(jù)到低維數(shù)數(shù)據(jù)的轉(zhuǎn)換,原變量中的大部分信息可以用維數(shù)少且互不相關(guān)的新變量來表示。主成分的劃分按照信息量的數(shù)目,包含最大信息的綜合指標(biāo)作為第一主成分,其次的作為第二主成分,一般主成分的數(shù)目按需要反映全部信息量的百分比來決定。主成分分析主要是采用樣本矩陣的協(xié)方差矩陣。 PCA技術(shù)的優(yōu)點之一是其完全無參數(shù)限制。也就是說,PCA的計算和實現(xiàn)過程中不需要人為預(yù)先設(shè)定的參數(shù)或根據(jù)任何經(jīng)驗?zāi)P蛯^程進(jìn)行干預(yù),計算
22、結(jié)果只與數(shù)據(jù)本身有關(guān)。3.6 本章小結(jié)第4章 SIFT算法的改進(jìn)方案SIFT算法是一種基于局部特征描述的算法,對于每個特征點,根據(jù)其鄰域內(nèi)的像素決定其描述子向量,較全局特征算法在大型數(shù)據(jù)庫匹配中有了更好的應(yīng)用,但是由于SIFT算子的特征描述子為128維,在存儲中需要耗費的存儲空間和匹配時間,GLOH算法雖然比SIFT算法由著更好的性能,但其特征向量也為128維,沒有在復(fù)雜度上進(jìn)行提高。針對于SIFT算法維數(shù)較高的缺點,本論文SIFT算法進(jìn)行了改進(jìn),一下為具體的改進(jìn)算法。4.1 SIFT簡化算法介紹 SIFT算法的改進(jìn)方案是從特征點的描述子入手,因為特征點描述子生成占去整個算法處理時間的大部分,
23、影響了算法的實時性,本論文的改進(jìn)算法也是針對于特征點描述子進(jìn)行改進(jìn)。 本論文的改進(jìn)算法是將原有的均勻分布的矩形區(qū)域改為以關(guān)鍵點為中心向外擴(kuò)散的同心圓區(qū)域,生成關(guān)鍵點的鄰域沒有變小。這樣改進(jìn)主要有以下一些因素:1)SIFT算法中應(yīng)用了高斯模糊的方法,也就是將圖像與高斯函數(shù)即正態(tài)函數(shù)做卷積。對于圖像來說,高斯模糊生成的曲面等高線是從關(guān)鍵點開始呈高斯分布的同心圓。這樣處理以后與關(guān)鍵點較近區(qū)域中的像素對關(guān)鍵點描述子的生成影響比重較大,而與關(guān)鍵點較遠(yuǎn)區(qū)域中的像素對關(guān)鍵點描述子的生成影響小。若將原區(qū)域劃分改為以關(guān)鍵點為中心的同心圓區(qū)域,可以省去高斯的模糊的步驟:2)SIFT算法需要計算每個關(guān)鍵點的方向,并
24、在描述子生成前旋轉(zhuǎn)鄰域,使關(guān)鍵點的方向為0°,從而保證旋轉(zhuǎn)不變性。這是因為矩形并不具有旋轉(zhuǎn)不變性,相對而言,圓形區(qū)域具有很好的旋轉(zhuǎn)不變性,可以免去鄰域角度歸零的步驟。新的描述子構(gòu)造方法如下:以關(guān)鍵點為中心,16為直徑的圓形窗戶區(qū)域作為鄰域,以保證生成特征點描述子所需要計算的鄰域范圍和原算法基本一致:將半徑為8的圓形鄰域以2為單位分為4個同心圓,圖3.1即為劃分之后的同心圓,每個格子代表一個像素值:對于4個同心圓區(qū)域,分別求出其10個方向(0°、36°、72°、108°、144°、180°、216°、252°
25、;、288°、324°)的梯度累加值。由中心向外,取第一個圓環(huán)的10維向量作為特征向量的第一至第十個元素,取第二個圓環(huán)的10維向量作為特征向量的第11至第20個個元素,以此類推。這樣,特征點描述子即為410=40維向量:為了保證旋轉(zhuǎn)不變性,對特征向量實施排序操作。設(shè)D使關(guān)鍵點的特征向量,D1、D2、D3、D4分別為從中心向外第一、第二、第三、第四個圓環(huán)的特征向量,則D=(D1,D2,D3,D4),其中Di=(Di1,Di2,Di9,Di10),i1,4。首先標(biāo)記出最內(nèi)圓最大值出現(xiàn)的位置,即 dI1,dI2,dI9,dI10中的最大值,若dI1為最大值,則不需要做任何處理,若
26、最大值不是dI1,則進(jìn)行如下操作:將D1、D2、D3、D4同時循環(huán)左移,直至D1中的最大值為特征向量D1中的第一位,設(shè)d17為向量D1中的最大值,則移動之后四個圓環(huán)的特征向量為Di=(di7,di8,,di10,di1,di2,,di6)。如果將每一個10維向量分別取向量的最大值并執(zhí)行此步驟,則匹配的效果會大大降低。這樣操作保證了四個圓環(huán)旋轉(zhuǎn)相同的角度,等同于原算法中鄰域歸零的操作,從而保證了改進(jìn)描述子具有選擇不變性。4.2 SIFT簡化算法將編好的程序輸入到VC+運(yùn)行,具體的步驟為:第一步,動態(tài)文件加入要運(yùn)行的DEBUG里面第二步,在options -directory里面加頭文件和lib
27、文件;在右側(cè)下拉框里面選include files,include files包含opencv安裝程序里的和gnuwin32里面的;同樣的lib文件也是同樣的方法,加到OPENCV和GUNWIN32里面。第三步,升級VC+運(yùn)稈就可以了。實驗中分別處理了經(jīng)過旋轉(zhuǎn)的兩幅圖片,如圖(1),圖(2),經(jīng)過觀察與分析得出:兩幅圖像在經(jīng)過旋轉(zhuǎn)后,利用SIFT簡化的算法提取的特征點是相同的: 圖(1)(圖標(biāo)) 圖(2),圖標(biāo)4.3 本章小結(jié)第5章 實驗結(jié)果及分析5.1 簡化算法不變性測試 為了驗證改進(jìn)的SIFT算法的可行性和有效性,實驗驗證了在其旋轉(zhuǎn)、尺度、變換時的圖像匹配效果,并與原算法在匹配時間及匹配效
28、果上做對比。編程環(huán)境為OPENCV。5.2 描述子維數(shù)的選擇本論文在改進(jìn)算法中需要確定的一個重要參數(shù)是四個同心圓環(huán)窗口的向量維數(shù),即每個同心圓環(huán)窗口所要統(tǒng)計的梯度直方圖數(shù)目。例如,若每個同心圓環(huán)選擇的向量維度為8,則生成的特征向量的維度為88=32維。向量維數(shù)不是越大越好,選擇一個合適的向量維度可以提高查全率、正確率和降低時間復(fù)雜度。 5.3改進(jìn)算法的時間復(fù)雜度 由于改進(jìn)算子簡化了特征點描述子,在匹配效果上有一定的降低,但是大大降低了SIFT算子的維數(shù),時間復(fù)雜度也降低了很多。更實用于海亮的數(shù)據(jù)搜索。5.4 本章小結(jié) 本文在總結(jié)了SIFT算子的優(yōu)點的同時,針對其維數(shù)過高,不適用于海量數(shù)據(jù)匹配的
29、不足,提出了自己的改進(jìn)方案。本人從改進(jìn)描述子入手,因為特征點描述子的生成占居了整個算法處理的大部分時間。簡化的特征點描述子將原算法中均勻分布的矩形區(qū)域改為關(guān)鍵點為中心向外擴(kuò)展的四個同心圓區(qū)域,生成關(guān)鍵點所需要計算的鄰域沒有變小,只是改進(jìn)了鄰域的劃分方法。改進(jìn)后的SIFT算子將特征點描述子的維數(shù)由128維降至40維。 致 謝 論文完成之際,首先衷心地感謝我的指導(dǎo)教師王妍瑋老師的諄諄教誨和悉心指導(dǎo),在畢業(yè)設(shè)計的3個月時間里,王老師給了我極大的幫助。王老師知識豐富、思維敏捷,在學(xué)業(yè)上積極創(chuàng)新的開拓精神令我永生難忘。在畢業(yè)設(shè)計和畢業(yè)論文撰寫階段,王老師不僅在學(xué)習(xí)上給予我?guī)椭?,而且她的那種負(fù)責(zé)的精神和強(qiáng)
30、烈的責(zé)任感,對我今后的發(fā)展提出了指導(dǎo)性建議。王老師認(rèn)真敬業(yè)的工作態(tài)度和為人師表的作風(fēng),體現(xiàn)了一個教育工作者的無私奉獻(xiàn)精神和科研工作者嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,這將使我在未來的工作和學(xué)習(xí)中受益終身。在此謹(jǐn)向尊敬的王老師致以我最誠摯的謝意。還要感謝華德學(xué)院電子信息工程系的所有教師,在學(xué)習(xí)和生活上你們都給予我最寶貴的意見和極大的幫助,還有我的指導(dǎo)員王明志教師,在平時的學(xué)習(xí)和生活中給予我的鼓勵和關(guān)心。 感謝我的父母,一直以來對我無私的關(guān)懷和付出,在面對各種困難時,給我支持的鼓勵!感謝所有關(guān)心我,幫助過我的朋友和同學(xué)!參考文獻(xiàn)1 王國美,陳孝威 SIFT特征匹配算法研究D.貴州大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院:2007.
31、2 何文峰,查紅彬 基于平面特征的深度圖像配準(zhǔn)D 北京大學(xué):2006.3 馬頌德,張正友 計算機(jī)視覺計算理論與算法基礎(chǔ)M.北京:科學(xué)出版社,2003.4 于長江.高等畫法幾何學(xué)M北京:航空專業(yè)教材編審組,1983.5 Schmid C,Mohr R.Local grayvalue invariants for image retrievalJ.IEEE Transactiongs on Pattern Analysis and Machine Intelligence1997.6 K.Mikolajczyk.detection of local features invariant to af
32、fine transformationsC.Ph.D.thesis Institut National Polytechnique deGrenoble France.2002.7 David G.Lowe.Distinctive Image Features from Scale-Invariant KeypointsC.International Journal of Computer Vision,2004.8 David G.Lowe.Object recognition from Iocal scale-invariant featuresC.International Confer
33、enceon Computer Vision,CorfuGreece,1999.9 趙輝.基于特征點的圖像配準(zhǔn)算法研究C.山東大學(xué)碩士學(xué)位論文.2006.附錄SIFT源程序代碼#include "utils.h"#include "imgfeatures.h"#include <cxcore.h>#include <math.h>int import_oxfd_features( char*, struct feature* );int export_oxfd_features( char*, struct feature*, i
34、nt );void draw_oxfd_features( IplImage*, struct feature*, int );void draw_oxfd_feature( IplImage*, struct feature*, CvScalar );int import_lowe_features( char*, struct feature* );int export_lowe_features( char*, struct feature*, int );void draw_lowe_features( IplImage*, struct feature*, int );void dr
35、aw_lowe_feature( IplImage*, struct feature*, CvScalar );int import_features( char* filename, int type, struct feature* feat )int n;switch( type )case FEATURE_OXFD:n = import_oxfd_features( filename, feat );break;case FEATURE_LOWE:n = import_lowe_features( filename, feat );break;default:fprintf( stde
36、rr, "Warning: import_features(): unrecognized feature" "type, %s, line %dn", _FILE_, _LINE_ );return -1;if( n = -1 )fprintf( stderr, "Warning: unable to import features from %s,"" %s, line %dn", filename, _FILE_, _LINE_ );return n;int export_features( char* fi
37、lename, struct feature* feat, int n )int r, type;if( n <= 0 | ! feat )fprintf( stderr, "Warning: no features to export, %s line %dn",_FILE_, _LINE_ );return 1;type = feat0.type;switch( type )case FEATURE_OXFD:r = export_oxfd_features( filename, feat, n );break;case FEATURE_LOWE:r = expo
38、rt_lowe_features( filename, feat, n );break;default:fprintf( stderr, "Warning: export_features(): unrecognized feature" "type, %s, line %dn", _FILE_, _LINE_ );return -1;if( r )fprintf( stderr, "Warning: unable to export features to %s,"" %s, line %dn", filenam
39、e, _FILE_, _LINE_ );return r;void draw_features( IplImage* img, struct feature* feat, int n )int type;if( n <= 0 | ! feat )fprintf( stderr, "Warning: no features to draw, %s line %dn",_FILE_, _LINE_ );return;type = feat0.type;switch( type )case FEATURE_OXFD:draw_oxfd_features( img, feat
40、, n );break;case FEATURE_LOWE:draw_lowe_features( img, feat, n );break;default:fprintf( stderr, "Warning: draw_features(): unrecognized feature" " type, %s, line %dn", _FILE_, _LINE_ );break;double descr_dist_sq( struct feature* f1, struct feature* f2 )double diff, dsq = 0;double
41、* descr1, * descr2;int i, d;d = f1->d;if( f2->d != d )return DBL_MAX;descr1 = f1->descr;descr2 = f2->descr;for( i = 0; i < d; i+ )diff = descr1i - descr2i;dsq += diff*diff;return dsq;int import_oxfd_features( char* filename, struct feature* features )struct feature* f;int i, j, n, d;d
42、ouble x, y, a, b, c, dv;FILE* file;if( ! features )fatal_error( "NULL pointer error, %s, line %d", _FILE_, _LINE_ );if( ! ( file = fopen( filename, "r" ) ) )fprintf( stderr, "Warning: error opening %s, %s, line %dn",filename, _FILE_, _LINE_ );return -1;if( fscanf( file,
43、 " %d %d ", &d, &n ) != 2 )fprintf( stderr, "Warning: file read error, %s, line %dn",_FILE_, _LINE_ );return -1;if( d > FEATURE_MAX_D )fprintf( stderr, "Warning: descriptor too long, %s, line %dn",_FILE_, _LINE_ );return -1;f = calloc( n, sizeof(struct featur
44、e) );for( i = 0; i < n; i+ )if( fscanf( file, " %lf %lf %lf %lf %lf ", &x, &y, &a, &b, &c ) != 5 )fprintf( stderr, "Warning: error reading feature #%d, %s, line %dn",i+1, _FILE_, _LINE_ );free( f );return -1;fi.img_pt.x = fi.x = x;fi.img_pt.y = fi.y = y;fi.
45、a = a;fi.b = b;fi.c = c;fi.d = d;fi.type = FEATURE_OXFD;for( j = 0; j < d; j+ )if( ! fscanf( file, " %lf ", &dv ) )fprintf( stderr, "Warning: error reading feature descriptor" " #%d, %s, line %dn", i+1, _FILE_, _LINE_ );free( f );return -1;fi.descrj = dv;fi.scl =
46、 fi.ori = 0;fi.class = 0;fi.fwd_match = fi.bck_match = fi.mdl_match = NULL;fi.mdl_pt.x = fi.mdl_pt.y = -1;fi.feature_data = NULL;if( fclose(file) )fprintf( stderr, "Warning: file close error, %s, line %dn",_FILE_, _LINE_ );free( f );return -1;*features = f;return n;int export_oxfd_features
47、( char* filename, struct feature* feat, int n )FILE* file;int i, j, d;if( n <= 0 )fprintf( stderr, "Warning: feature count %d, %s, line %sn",n, _FILE_, _LINE_ );return 1;if( ! ( file = fopen( filename, "w" ) ) )fprintf( stderr, "Warning: error opening %s, %s, line %dn&quo
48、t;,filename, _FILE_, _LINE_ );return 1;d = feat0.d;fprintf( file, "%dn%dn", d, n );for( i = 0; i < n; i+ )fprintf( file, "%f %f %f %f %f", feati.x, feati.y, feati.a,feati.b, feati.c );for( j = 0; j < d; j+ )fprintf( file, " %f", feati.descrj );fprintf( file, "
49、;n" );if( fclose(file) )fprintf( stderr, "Warning: file close error, %s, line %dn",_FILE_, _LINE_ );return 1;return 0;void draw_oxfd_features( IplImage* img, struct feature* feat, int n )CvScalar color = CV_RGB( 255, 255, 255 );int i;if( img-> nChannels > 1 )color = FEATURE_OXFD
50、_COLOR;for( i = 0; i < n; i+ )draw_oxfd_feature( img, feat + i, color );void draw_oxfd_feature( IplImage* img, struct feature* feat, CvScalar color )double m4 = feat->a, feat->b, feat->b, feat->c ;double v4 = 0 ;double e2 = 0 ;CvMat M, V, E;double alpha, l1, l2;cvInitMatHeader( &M
51、, 2, 2, CV_64FC1, m, CV_AUTOSTEP );cvInitMatHeader( &V, 2, 2, CV_64FC1, v, CV_AUTOSTEP );cvInitMatHeader( &E, 2, 1, CV_64FC1, e, CV_AUTOSTEP );cvEigenVV( &M, &V, &E, DBL_EPSILON );l1 = 1 / sqrt( e1 );l2 = 1 / sqrt( e0 );alpha = -atan2( v1, v0 );alpha *= 180 / CV_PI;cvEllipse( img
52、, cvPoint( feat->x, feat->y ), cvSize( l2, l1 ), alpha,0, 360, CV_RGB(0,0,0), 3, 8, 0 );cvEllipse( img, cvPoint( feat->x, feat->y ), cvSize( l2, l1 ), alpha,0, 360, color, 1, 8, 0 );cvLine( img, cvPoint( feat->x+2, feat->y ), cvPoint( feat->x-2, feat->y ),color, 1, 8, 0 );cvLine( img, cvPoint( feat->x, feat->y+2 ), cvPoint( feat->x, feat->y-2 ),color, 1, 8, 0 );int import_lowe_features( char* filename, struct feature* features )struct feature*
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療糾紛法律意見書范文
- 急危重癥患者生物樣本采集流程
- 部編人教版五年級下冊道德與法治學(xué)業(yè)指導(dǎo)計劃
- 交通運(yùn)輸安全自查報告及整改措施
- 建筑施工安全質(zhì)量保證體系措施
- 2025秋季幼兒園兒童飲食健康計劃
- 農(nóng)貿(mào)市場食品安全管理領(lǐng)導(dǎo)小組職責(zé)
- 2025年部編三年級語文上冊教學(xué)方案計劃
- 新人教版八年級數(shù)學(xué)上冊課外拓展計劃
- 以小見大:小群體教學(xué)模式在中學(xué)籃球課中的實踐與革新
- 2025泉州市洛江區(qū)事業(yè)單位考試歷年真題
- 商場夏季餐飲活動方案
- 高溫施工人員防暑指南
- 上海市重點建設(shè)項目社會穩(wěn)定風(fēng)險評估報告編制指南2025
- 2025央國企AI+數(shù)智化轉(zhuǎn)型研究報告
- 倉儲部標(biāo)簽管理制度
- 風(fēng)力發(fā)電運(yùn)維值班員(技師)職業(yè)技能鑒定考試題(附答案)
- 數(shù)據(jù)庫應(yīng)用技術(shù)-第三次形考作業(yè)(第10章~第11章)-國開-參考資料
- 蘇教版四年級下冊數(shù)學(xué)計算題每日一練帶答案(共30天)
- MAM6090空壓 機(jī)微電腦控制器說明書
- 國家中小學(xué)智慧教育平臺培訓(xùn)專題講座
評論
0/150
提交評論