gpt4 book ai didi

python - OpenCV ORB 检测器发现非常少的关键点

转载 作者:太空狗 更新时间:2023-10-29 20:58:31 26 4
gpt4 key购买 nike

我正在尝试使用 ORB 关键点检测器,它返回的点似乎比 SIFT 检测器和 FAST 检测器少得多。

此图像显示了 ORB 检测器发现的关键点:

enter image description here

这张图片显示了 SIFT 检测阶段找到的关键点(FAST 返回相似数量的点)。

enter image description here

如此少的点会导致图像间的特征匹配结果非常差。不过,我现在只是对 ORB 的检测阶段感到好奇,因为这似乎让我得到了不正确的结果。我已经尝试使用具有默认参数的 ORB 检测器以及下面详述的自定义参数。

为什么会有这么大的差异?

代码:

orb = cv2.ORB_create(edgeThreshold=15, patchSize=31, nlevels=8, fastThreshold=20, scaleFactor=1.2, WTA_K=2,scoreType=cv2.ORB_HARRIS_SCORE, firstLevel=0, nfeatures=500)
#orb = cv2.ORB_create()
kp2 = orb.detect(img2)
img2_kp = cv2.drawKeypoints(img2, kp2, None, color=(0,255,0), \
flags=cv2.DrawMatchesFlags_DEFAULT)

plt.figure()
plt.imshow(img2_kp)
plt.show()

最佳答案

增加 nfeatures 会增加检测到的角点数量。关键点提取器的类型似乎无关紧要。我不确定这个参数是如何传递给 FAST 或 Harris 的,但它似乎有效。

orb = cv2.ORB_create(scoreType=cv2.ORB_FAST_SCORE)

enter image description here

orb = cv2.ORB_create(nfeatures=100000, scoreType=cv2.ORB_FAST_SCORE)

enter image description here

关于python - OpenCV ORB 检测器发现非常少的关键点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32702433/

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