2017-05-10 83 views
1

我正在處理具有藍色和灰色斑點的圖像。最終,我想識別具有此場景的數據集中的所有圖像。我正在使用SIFT。我試圖映射看起來像這樣的關鍵點:提取的關鍵點和功能不在興趣點

根據我生成的關鍵點不在我感興趣的位置。我做錯了什麼?

im1 = im2single(im1) ; 
im1g = rgb2gray(im1) ; 
[fa,da] = vl_sift(im1g) ; % fa is 4x14869, da is 128x14869 
perm = randperm(size(fa,2)) ; 
start=-49; 
int=49; 
while start<length(fa) 
    figure % image(im1) % start=start+50 
    sel=perm(start:start+int) 
    h1=vl_plotframe(fa(:,sel)) ; 
    set(h1, 'color', 'y', 'linewidth',3); 
    start; 
    pause; 
end 
+0

是的,你的關鍵點看起來很奇怪,因爲它們大多數似乎都位於同質區域。我認爲如果你提供更多關於你的問題的細節(或者顯示你如何計算篩選的片段)會更好。 – Ash

+0

@Ash我將代碼添加到我的問題。請幫幫我。 – wannabegeek

+0

不幸的是,我現在無法訪問matlab/octave,而且我也不太瞭解vfleat。但我懷疑關鍵點是正確的,只是低對比度的關鍵點不會抑制你顯示的結果。由於我不確定我只是建議你在問題中添加八度/ matlab標籤以提高可視性。 – Ash

回答

0

您的代碼對我無效。它說,在這條線:

sel=perm(start:start+int) 

標指標必須是真正的正整數或邏輯值。

您設置了start=-49,這是一個負指數。也start=start+50給出了一個錯誤...對不起,我不能再現你的例子。

您能否糾正您的代碼?