opencv cv2 python始终没有任何特性

pprl5pva  于 2023-08-06  发布在  Python
关注(0)|答案(1)|浏览(106)

我想让应用程序来匹配两个图像,并找到哪里是我跟踪的目标,以最快的方式,而不会失去跟踪。
我使用ORG,但有时功能不起作用(没有功能),我使用机器学习,但它真的很慢。

xdyibdwo

xdyibdwo1#

当涉及到特征匹配时,存在若干特征匹配算法。ORB(Oriented FAST and Rotated BRIEF)算法比SIFT特征匹配算法快两个数量级。为了比较2个图像的特征,您可以使用它如下,

import numpy as np
import cv2

    
# Read the query image as query_img
# and train image This query image
# is what you need to find in train image
# Save it in the same directory
# with the name image.jpg
query_img = cv2.imread('query.jpg')
train_img = cv2.imread('train.jpg')

# Convert it to grayscale
query_img_bw = cv2.cvtColor(query_img,cv2.COLOR_BGR2GRAY)
train_img_bw = cv2.cvtColor(train_img, cv2.COLOR_BGR2GRAY)

# Initialize the ORB detector algorithm
orb = cv2.ORB_create()

# Now detect the keypoints and compute
# the descriptors for the query image
# and train image
queryKeypoints, queryDescriptors = orb.detectAndCompute(query_img_bw,None)
trainKeypoints, trainDescriptors = orb.detectAndCompute(train_img_bw,None)

# Initialize the Matcher for matching
# the keypoints and then match the
# keypoints
matcher = cv2.BFMatcher()
matches = matcher.match(queryDescriptors,trainDescriptors)

# draw the matches to the final image
# containing both the images the drawMatches()
# function takes both images and keypoints
# and outputs the matched query image with
# its train image
final_img = cv2.drawMatches(query_img, queryKeypoints,
train_img, trainKeypoints, matches[:20],None)

final_img = cv2.resize(final_img, (1000,650))

# Show the final image
cv2.imshow("Matches", final_img)
cv2.waitKey(3000)

字符串

相关问题