In [1]:
#https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_feature2d/py_sift_intro/py_sift_intro.html

In [2]:
import cv2

In [3]:
import cv2
import numpy as np

img = cv2.imread('home.jpg')
gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

sift = cv2.SIFT()
kp = sift.detect(gray,None)

img=cv2.drawKeypoints(gray,kp)

cv2.imwrite('sift_keypoints.jpg',img)


---------------------------------------------------------------------------
error                                     Traceback (most recent call last)
<ipython-input-3-a2c9654bbcf2> in <module>()
      3 
      4 img = cv2.imread('home.jpg')
----> 5 gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
      6 
      7 sift = cv2.SIFT()

error: /devSOLR-Crawler/img/opencv-2.4.6/modules/imgproc/src/color.cpp:3402: error: (-215) scn == 3 || scn == 4 in function cvtColor

In [4]:


In [7]:
#https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_feature2d/py_matcher/py_matcher.html

import numpy as np
import cv2
from matplotlib import pyplot as plt

img1 = cv2.imread('box.png',0)          # queryImage
img2 = cv2.imread('box_in_scene.png',0) # trainImage

# Initiate SIFT detector
orb = cv2.ORB()

# find the keypoints and descriptors with SIFT
kp1, des1 = orb.detectAndCompute(img1,None)
kp2, des2 = orb.detectAndCompute(img2,None)

In [8]:
# create BFMatcher object
bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)

# Match descriptors.
matches = bf.match(des1,des2)

# Sort them in the order of their distance.
matches = sorted(matches, key = lambda x:x.distance)

# Draw first 10 matches.
img3 = cv2.drawMatches(img1,kp1,img2,kp2,matches[:10], flags=2)

plt.imshow(img3),plt.show()


---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-8-22ecc4d99784> in <module>()
      9 
     10 # Draw first 10 matches.
---> 11 img3 = cv2.drawMatches(img1,kp1,img2,kp2,matches[:10], flags=2)
     12 
     13 plt.imshow(img3),plt.show()

AttributeError: 'module' object has no attribute 'drawMatches'

In [ ]: