Python 从CV2.Keypoints对象的图像中提取像素值

Python 从CV2.Keypoints对象的图像中提取像素值,python,opencv,sift,keypoint,Python,Opencv,Sift,Keypoint,我使用以下方法从img1中提取了一个元组(关键点、描述符): (kp, des) = sift.detectAndCompute(img1,None) kp是包含cv2.KeyPoint对象和 des是一个包含128维描述符的numpy.array 我想为每个关键点检索一个从另一个相同大小的图像img2中获取的像素值,并将它们存储在tuple(kp,des)中,以便最终得到一个类似(kp,des,pixel_值) 非常感谢。您可以从kp访问像素坐标。如下图所示: kp[0].pt 我认为以下

我使用以下方法从
img1
中提取了一个元组(关键点、描述符):

(kp, des) = sift.detectAndCompute(img1,None)
kp
是包含
cv2.KeyPoint
对象和
des
是一个包含128维描述符的
numpy.array

我想为每个关键点检索一个从另一个相同大小的图像
img2
中获取的像素值,并将它们存储在tuple
(kp,des)
中,以便最终得到一个类似
(kp,des,pixel_值)


非常感谢。您可以从kp访问像素坐标。如下图所示:

kp[0].pt
我认为以下代码符合您的要求:

(kp[i], des[i], img2[kp[i].pt] for i in range(len(kp)))

谢谢您的回答,但我想从IMG2中检索像素值,而不是像素坐标。您需要使用像素坐标来获取像素值。kp[i].pt返回第i个关键点的像素坐标。如果你想得到这个点的像素值,你应该使用坐标。然而,如果您想要的是匹配两幅图像中的关键点,而不是检索对应关键点的像素值,则应该使用诸如flann或BFMatcher之类的特征匹配方法。