本文介紹了python opencv之SIFT算法示例,分享給大家,具體如下:
目標:
學習SIFT算法的概念
學習在圖像中查找SIFT關鍵的和描述符
原理:
(原理部分自己找了不少文章,內容中有不少自己理解和整理的東西,為了方便快速理解內容和能夠快速理解原理,本文盡量不使用數學公式,僅僅使用文字來描述。本文中有很多引用別人文章的內容,僅供個人記錄使用,若有錯誤,請指正出來,萬分感謝)
之前的harris算法和Shi-Tomasi 算法,由于算法原理所致,具有旋轉不變性,在目標圖片發生旋轉時依然能夠獲得相同的角點。但是如果對圖像進行縮放以后,再使用之前的算法就會檢測不出來,原理用一張圖表示(圖1):

(harris算法和shi-tomasi算法都是基于窗口中像素分布和變化的原理,在圖像放大且窗口大小不發生變化的時,窗口中的像素信息則會有很大的不同,造成無法檢測的結果)
SIFT特性:
SIFT特點:
SIFT算法步驟:
尺度空間極值檢測:
尺度空間的個人理解:
你找一張分辨率1024×1024圖片,在電腦上觀看,十分清晰,但是圖片太大。現在把這圖片反正photoshop上,將分辨率改成512×512,圖片看著依然很清晰,但是不可能像1024×1024的畫面那么精細,只不過是因為人眼構造的原因,512×512圖片依然能讓你分辨出這是個什么東西。
粗俗點說,尺度空間,就相當于一個圖片需要獲得多少分辨率的量級。如果把一個圖片從原始分辨率到,不停的對其分辨率進行減少,然后將這些圖片摞在一起,可以看成一個四棱錐的樣式,這個東西就叫做圖像金字塔(如下圖,圖2)。

再回到尺度空間,在攝像頭中,計算機無法分辨一個景物的尺度信息。而人眼不同,除了人大腦里已經對物體有了基本的概念(例如正常人在十幾米外看到蘋果,和在近距離看到蘋果,都能認出是蘋果)以外,人眼在距離物體近時,能夠獲得物體足夠多的特性,在距離物體遠時,能夠或略細節,例如,近距離看一個人臉能看到毛孔,距離遠了看不到毛孔等等。
新聞熱點
疑難解答