【发布时间】:2020-09-09 10:43:44
【问题描述】:
我正在尝试在图像上手动设置 22 个关键点,以便提取它们的特征。对于这个任务,我使用我手动选择的坐标创建了一个关键点数组,并将向量作为参数传递给 orb.compute,然后它们分别绘制关键点。
我的问题是我在图像的不同部分设置了 22 个点,但在图像中显示的关键点不会超过 14 个。
以下是我期望在哪些位置绘制 22 个关键点的示例:
实际发生的情况:
点从一个图像到另一个图像有所改变,但代码中的坐标才是最重要的,这些图像是我试图做什么和得到什么的说明性示例。
这是我的代码的可重现版本:
import pandas as pd
import skimage
import cv2
imageList = skimage.io.imread("./a.png")
orb = cv2.ORB_create()
key_points = [cv2.KeyPoint(65, 9, 10), <---- missing
cv2.KeyPoint(66, 12, 10),
cv2.KeyPoint(62, 21, 10),
cv2.KeyPoint(60, 13, 10),
cv2.KeyPoint(67, 12, 10),
cv2.KeyPoint(107, 6, 10), <---- missing
cv2.KeyPoint(170, 10, 10),<---- missing
cv2.KeyPoint(25, 60, 10),
cv2.KeyPoint(60, 40, 10),
cv2.KeyPoint(110, 35, 10),
cv2.KeyPoint(170, 35, 10),
cv2.KeyPoint(190, 60, 1),
cv2.KeyPoint(30, 95, 10), <---- missing
cv2.KeyPoint(60, 80, 10),
cv2.KeyPoint(100, 105, 10),
cv2.KeyPoint(120, 105, 10),
cv2.KeyPoint(160, 180, 10),
cv2.KeyPoint(185, 95, 10),
cv2.KeyPoint(25, 160, 10), <---- missing
cv2.KeyPoint(55, 160, 10),
cv2.KeyPoint(155, 160, 10),
cv2.KeyPoint(185, 160, 10), <---- missing
cv2.KeyPoint(65, 200, 10), <----- missing
cv2.KeyPoint(83, 186, 10),
cv2.KeyPoint(128, 186, 10),
cv2.KeyPoint(157, 197, 10) <---- missing]
kp, des = orb.compute(imageList, key_points)
kparray = cv2.drawKeypoints(imageList, kp, None, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS);
cv2.imshow("Image", kparray)
cv2.waitKey(0)
所以,出于某种原因,我设置了上面可以看到的所有这 22 个点,但是当我运行我的代码时,它只显示 14 个,有些丢失了 我什至尝试在 cv2.drawKeyPoints 中打印 kp 参数以确保:
[<KeyPoint 000002DF9DE83B40>,
<KeyPoint 000002DF9DE83F90>,
<KeyPoint 000002DF9DE83FC0>,
<KeyPoint 000002DF9DE83F30>,
<KeyPoint 000002DF9DE83DB0>,
<KeyPoint 000002DFAB657030>,
<KeyPoint 000002DFAB657B40>,
<KeyPoint 000002DFAC1FED20>,
<KeyPoint 000002DFAC1FE480>,
<KeyPoint 000002DFAC1FEC90>,
<KeyPoint 000002DFAC1FEDE0>,
<KeyPoint 000002DFAC20D030>,
<KeyPoint 000002DFAC20D060>,
<KeyPoint 000002DFAC20D0C0>]
【问题讨论】:
-
这能回答你的问题吗? OpenCV ORB detector finds very few keypoints
-
我不能确定问题是否相同,但正确的答案肯定在这个线程上,而不是在那里。我尝试了该解决方案以确保,除了没有可接受的答案之外,我仍然得到较少的分数,这意味着问题可能尚未解决。
标签: python opencv feature-extraction cv2 orb