def bf_knnmatches( matches, img, kp1, kp2):
MIN_MATCH_COUNT = 10
# store all the good matches as per Lowe's ratio test.
good = []
dst = []
if len(matches[0]) == 2:
for m, n in matches:
if m.distance < 0.7*n.distance:
good.append(m)
if len(good) > MIN_MATCH_COUNT:
src_pts = np.float32([kp1[m.queryIdx].pt for m in good]).reshape(-1, 1, 2)
dst_pts = np.float32([kp2[m.trainIdx].pt for m in good]).reshape(-1, 1, 2)
M, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC, 5.0)
if M is not None:
h, w = img.shape
pts = np.float32([[0, 0], [0, h-1], [w-1, h-1], [w-1, 0]]).reshape(-1, 1, 2)
dst = cv2.perspectiveTransform(pts, M)
else:
dst = []
else:
dst = []
return dst
detectMultiLogo_cam.py 文件源码
python
阅读 22
收藏 0
点赞 0
评论 0
评论列表
文章目录