请在下面的myopencv3
Python3代码中找到匹配对象的代码,该代码会引发以下错误:
TypeError: Argument given by name ('k') and position (2)
代码如下:
import numpy as np
import cv2
import time
import distance
camera = cv2.VideoCapture(0)
sift = cv2.xfeatures2d.SIFT_create()
img = cv2.imread('/home/shar/bo.jpg')
imgTrainGray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
kpTrain = sift.detect(imgTrainGray,None)
kpTrain, desTrain = sift.compute(imgTrainGray, kpTrain)
FLANN_INDEX_KDTREE = 0
index_params = dict(algorithm = FLANN_INDEX_KDTREE, trees = 5)
search_params = dict(checks=50)
flann = cv2.FlannBasedMatcher(index_params,search_params)
matches = flann.knnMatch(kpTrain,desTrain,k=2)
关于如何修复它的想法?
这对我有效
尝试将
k
作为位置参数传递:您试图匹配关键点和描述符-这是错误的。您需要两个图像,首先在两个图像中找到关键点(兴趣点)。然后为每个点计算一个描述符(同样在两个图像中)。最后,使用Flann查找两个图像之间的匹配。请参见示例here。
相关问题 更多 >
编程相关推荐