Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 太多的赛点在一起_Python_Opencv_Knn_Surf - Fatal编程技术网

Python 太多的赛点在一起

Python 太多的赛点在一起,python,opencv,knn,surf,Python,Opencv,Knn,Surf,我试图创建一个脚本,给出两张钞票图像,告诉我第一张图像是否出现在第二张图像上。如果第一个图像出现在第二个图像上,它可以正常工作,但如果不是,它会给我这样的提示: 与第二幅图像中的同一点(或非常接近)相关的多个点。你知道过滤这个的方法吗 我就是这么做的: img1 = cv2.imread(trainImage , 0) # trainImage mask = cv2.imread(maskTrainImage, 0) # trainMask kp1,

我试图创建一个脚本,给出两张钞票图像,告诉我第一张图像是否出现在第二张图像上。如果第一个图像出现在第二个图像上,它可以正常工作,但如果不是,它会给我这样的提示:

与第二幅图像中的同一点(或非常接近)相关的多个点。你知道过滤这个的方法吗

我就是这么做的:

img1      = cv2.imread(trainImage    , 0)     # trainImage
mask      = cv2.imread(maskTrainImage, 0)     # trainMask
kp1, des1 = surf.detectAndCompute(img1,mask)
kp2, des2 = surf.detectAndCompute(img2, None)

index_params  = dict(algorithm = FLANN_INDEX_KDTREE, trees = 4)
search_params = dict(checks = 50)
flann = cv2.FlannBasedMatcher(index_params, search_params)
matches = flann.knnMatch(des1,des2,k=2)
# store all the good matches as per Lowe's ratio test.
good = []
for m,n in matches:
     if (m.distance < 0.70*n.distance):
        good.append(m)
img1=cv2.imread(列车图像,0)#列车图像
mask=cv2.imread(maskTrainImage,0)#列车掩码
kp1,des1=表面检测和计算(img1,掩码)
kp2,des2=表面检测和计算(img2,无)
索引参数=dict(算法=FLANN\u索引树,树=4)
搜索参数=dict(检查=50)
flann=cv2.FlannBasedMatcher(索引参数、搜索参数)
匹配=法兰N.knnMatch(des1、des2、k=2)
#根据Lowe比率测试存储所有良好匹配项。
好的=[]
对于匹配中的m,n:
如果(m.距离<0.70*n.距离):
好。追加(m)
如果第二个图像中的所有匹配点都是相同的点或比5像素或类似的点更接近,我如何删除它们