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

问题描述

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

(kp,des) = sift.detectAndCompute(img1,None)

kp一个包含 cv2.KeyPoint 对象的列表,并且 des一个 numpy.array,包含它们的 128 个维度描述符

我想为每个关键点检索从另一个相同大小的图像 img2获取的像素值,并将它们存储在元组 (kp,des) 中,最终得到一个(kp,des,pixel_values) 这样的元组

非常感谢您。

解决方法

您可以从 kp 访问像素坐标。如下图:

kp[0].pt

我认为以下代码可以满足您的需求:

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