1.SIFT特征原理描述
SIFT的全稱是Scale Invariant Feature Transform,由加拿大教授David G.Lowe提出的。SIFT特征不只具有尺度不變性,即使改變旋轉角度,圖像亮度或拍攝視角,仍然能夠得到好的檢測效果,是一種非常穩定的局部特征。
總體來說,Sift算子具有以下特性:
(1)Sift特征是圖像的局部特征,對平移、旋轉、尺度縮放、亮度變化、遮擋和噪聲等具有良好的不變性,對視覺變化、仿射變換也保持一定程度的穩定性。
(2)獨特性好,信息量豐富,適用於在海量特征數據庫中進行快速、准確的匹配。
(3)多量性,即使少數的幾個物體也可以產生大量Sift特征向量。
(4)速度相對較快,經優化的Sift匹配算法甚至可以達到實時的要求。
(5)可擴展性強,可以很方便的與其他形式的特征向量進行聯合。
Sift算法的步驟可歸納為以下三點:
(1)提取關鍵點;
(2)對關鍵點附加詳細的信息(局部特征)也就是所謂的描述器;
(3)通過兩方特征點(附帶上特征向量的關鍵點)的兩兩比較找出相互匹配的若干對特征點,也就建立了景物間的對應關系。提取關鍵點和對關鍵點附加詳細的信息(局部特征)也就是所謂的描述器可以稱做是Sift特征的生成,即從多幅圖像中提取對尺度縮放、旋轉、亮度變化無關的特征向量。
SIFT的特點主要有以下幾個:
- 旋轉、縮放、平移不變性
- 解決圖像仿射變換,投影變換的關鍵的匹配
- 光照影響小
- 目標遮擋影響小
- 噪聲景物影響小
2、對兩張圖片進行SIFT特征匹配處理
運行代碼如下圖:
運行結果如下圖:
(1)首先第一次運行之后顯示pil出現問題,之后我重新在anconda中重新安裝了pil庫(這個問題我忘記截圖了!)這個問題就解決了。
(2)計算關鍵點描述符時;如果未找到關鍵點,可以使用函數sift.detectAndCompute()直接找到關鍵點並計算。
(3)運行中還遇到一個問題,是有關pcv的問題:
這個問題意思是沒有找到一個名為pcv的庫,說明pcv安裝出現問題,於是,我重新跟着安裝了pcv,這個問題也解決了,安裝鏈接:https://github.com/jesolem/PCV,步驟如下:
打開cmd,執行如下指令:
cd C:\Users\Administrator\Desktop\PCV
python

在pycharm中輸入import PCV,測試是否安裝成功。

所以我在anconda中其他平台運行完成。
3、對從不同視點拍攝的圖片做地理標記