gpt4 book ai didi

python - 你如何在 python 上的 Opencv 中使用 Amaze

转载 作者:太空狗 更新时间:2023-10-29 21:21:53 25 4
gpt4 key购买 nike

我在 C++ 中找到了示例: http://docs.opencv.org/3.0-beta/doc/tutorials/features2d/akaze_matching/akaze_matching.html

但 python 中没有任何示例显示如何使用此特征检测器(在有关 AKAZE 的文档中也找不到更多信息,有 ORB SIFT、SURF 等但不是我要找的) http://docs.opencv.org/3.1.0/db/d27/tutorial_py_table_of_contents_feature2d.html#gsc.tab=0

有人可以分享或告诉我在哪里可以找到如何将 python 中的图像与 akaze 匹配的信息吗?

最佳答案

我不确定在哪里可以找到它,我让它工作的方式是通过使用 Brute Force 匹配器的这个函数:

def kaze_match(im1_path, im2_path):
# load the image and convert it to grayscale
im1 = cv2.imread(im1_path)
im2 = cv2.imread(im2_path)
gray1 = cv2.cvtColor(im1, cv2.COLOR_BGR2GRAY)
gray2 = cv2.cvtColor(im2, cv2.COLOR_BGR2GRAY)

# initialize the AKAZE descriptor, then detect keypoints and extract
# local invariant descriptors from the image
detector = cv2.AKAZE_create()
(kps1, descs1) = detector.detectAndCompute(gray1, None)
(kps2, descs2) = detector.detectAndCompute(gray2, None)

print("keypoints: {}, descriptors: {}".format(len(kps1), descs1.shape))
print("keypoints: {}, descriptors: {}".format(len(kps2), descs2.shape))

# Match the features
bf = cv2.BFMatcher(cv2.NORM_HAMMING)
matches = bf.knnMatch(descs1,descs2, k=2) # typo fixed

# Apply ratio test
good = []
for m,n in matches:
if m.distance < 0.9*n.distance:
good.append([m])

# cv2.drawMatchesKnn expects list of lists as matches.
im3 = cv2.drawMatchesKnn(im1, kps1, im2, kps2, good[1:20], None, flags=2)
cv2.imshow("AKAZE matching", im3)
cv2.waitKey(0)

请记住,特征向量是二进制向量。因此,相似度基于汉明距离,而不是常用的 L2 范数或欧氏距离。

关于python - 你如何在 python 上的 Opencv 中使用 Amaze,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36796025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com