2017-07-27 93 views
-2

我想使用SIFT。我已經嘗試過這樣的代碼:如何在opencv 2.4中使用SIFT

import cv2 
    import numpy as np 
    img = cv2.imread('1.jpg') 
    gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
    sift = cv2.xfeatures2d.SIFT_create() 
    kp = sift.detect(gray,None) 
    img=cv2.drawKeypoints(gray,kp,img) 
    cv2.imwrite('sift_keypoints.jpg',img) 

但我得到這個錯誤:

./sifttt.py:行3:附近意外的標記語法錯誤'(」

./sifttt.py:3號線:`IMG = cv2.imread( '1.JPG')」

我不知道如果我需要安裝什麼東西,或者如果我需要做別的事情?

+0

錯誤w.r.t.代碼沒有意義!你確定這是代碼嗎? –

+0

將代碼作爲'python sifttt.py'運行,以檢查您是否使用了正確的解釋器,以防萬一。 –

+0

您的代碼在我的機器上運行。沒有錯誤。 SIFT點正確檢測。 – Eskapp

回答

0

第5行的代碼存在問題。您使用的是opencv 2.4版本,但opencv 2.4沒有xfeature2d模塊,該模塊位於openv 3中,位於check this out。所以要在opencv 2.4中使用Sift,請使用thisthis教程。