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像素或类似的点更接近,我如何删除它们