【问题标题】:Extract pixel values from an image for CV2.Keypoints objects从图像中提取 CV2.Keypoints 对象的像素值
【发布时间】:2021-05-08 13:07:20
【问题描述】:

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

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

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

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

非常感谢您。

【问题讨论】:

    标签: python opencv sift keypoint


    【解决方案1】:

    您可以从 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。
    猜你喜欢
    • 1970-01-01
    • 2019-02-17
    • 2014-06-22
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    相关资源
    最近更新 更多