我正在尝试通过 python 使用 opencv 来查找火车图像中的多个对象,并将其与从查询图像中检测到的关键点进行匹配。对于我的情况,我正在尝试检测下面提供的图像中的网球场。我看了网上的教程,只发现它只能检测1个物体。我想过插入一个循环来查找多个对象,但我失败了。关于如何做有什么想法吗?*我使用 SIFT,因为 ORB 不太适合我的情况
这是代码和一组示例图像。
import numpy as np
import cv2
from matplotlib import pyplot as plt
MIN_MATCH_COUNT = 10
img1 = cv2.imread('Image 11.jpg',0) # queryImage
img2 = cv2.imread('Image 5.jpg',0) # trainImage
# Initiate SIFT detector
sift = cv2.xfeatures2d.SIFT_create()
# find the keypoints and descriptors with SIFT
kp1, des1 = sift.detectAndCompute(img1,None)
kp2, des2 = sift.detectAndCompute(img2,None)
FLANN_INDEX_KDTREE = 1
index_params = dict(algorithm = FLANN_INDEX_KDTREE, trees = 5)
search_params = dict(checks = 50)
flann = cv2.FlannBasedMatcher(index_params, search_params)
matches …Run Code Online (Sandbox Code Playgroud)