【发布时间】:2019-07-31 12:49:42
【问题描述】:
我正在尝试使用 SIFT 描述符进行图像匹配。我打算将一张图片与另一张图片进行匹配。
这是我试图匹配的代码
sift = cv2.xfeatures2d.SIFT_create()
kp_1, desc_1 = sift.detectAndCompute(original, None)
kp_2, desc_2 = sift.detectAndCompute(image_to_compare, None)
index_params = dict(algorithm=0, trees=5)
search_params = dict()
flann = cv2.FlannBasedMatcher(index_params, search_params)
matches = flann.knnMatch(desc_1, desc_2, k=2)
但我收到以下错误:
<ipython-input-6-1f81512d446c> in AlgSift(imagen, imagentocompare, umbral)
21 search_params = dict()
22 flann = cv2.FlannBasedMatcher(index_params, search_params)
---> 23 matches = flann.knnMatch(desc_1, desc_2, k=2)
24
25
error: OpenCV(3.4.2) /io/opencv/modules/flann/src/miniflann.cpp:487: error:
(-215:Assertion failed) (size_t)knn <= index_->size() in function
'runKnnSearch_'
【问题讨论】:
-
您可以检查:输入参数是否为NULL或特定opencv版本可能有不同的函数('runKnnSearch_')定义。