cv2 3.0.0 cv2.FlannBasedMatcher: flann.knnMatch está arrojando un error cv2

Quiero usar un emparejador basado en flann en Python como se describe enhttp://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_feature2d/py_matcher/py_matcher.html

Como estoy usando OpenCV 3.0.0, tuve que ajustar el código con respecto a la inicialización del detector SIFT. El resto se toma sin cambios.

def calculateMatch(self):
    # Initiate SIFT detector
    sift = cv2.xfeatures2d.SIFT_create()

    # find the keypoints and descriptors with SIFT
    (kp1, desc1) = sift.detectAndCompute(self.image1,None)
    (kp2, desc2) = sift.detectAndCompute(self.image2,None)

    # FLANN parameters
    FLANN_INDEX_KDTREE = 0

    index_params = dict(algorithm = FLANN_INDEX_KDTREE, trees = 5)
    search_params = dict(checks=50)   # or pass empty dictionary

    flann = cv2.FlannBasedMatcher(index_params,search_params)
    matches = flann.knnMatch(desc1,desc2,k=2)

Cuando ejecuto el código, recibo el siguiente mensaje:

cv2.error: cv2.cpp:161: error: (-215) The data should normally be NULL! in function allocate

En la linea:

matches = flann.knnMatch(desc1,desc2,k=2)        

Un comentario más: si uso el emparejador de fuerza bruta, todo funciona bien:

bf = cv2.BFMatcher()
matches = bf.knnMatch(desc1, desc2, k=2)

Respuestas a la pregunta(4)

Su respuesta a la pregunta