Chu1024
Chu1024
2019-05-07 12:11
采纳率: 0%
浏览 449

新手求教 用sift处理后的图片得到的特征矩阵大小为什么不相同?

刚开始学习图片处理没多久,恳请各位大佬指教。图片已经灰度处理,也用resize统一了图片的尺寸。为什么使用尺度不变特征变换后得到的特征矩阵行数不同?如何处理?

    sift = cv2.xfeatures2d.SIFT_create()
    des_list = []
    index=0
    for image_path in image_paths:
        if index<2:
            im_bgr = cv2.imread(image_path)
            im_gra=cv2.cvtColor(im_bgr,cv2.COLOR_BGR2GRAY)
            im_new=cv2.resize(im_gra,(600,600))
            kpts = sift.detect(im_new)
            kpts, des = sift.compute(im_new, kpts)
            des_list.append((image_path, des))
            print("image file path : ", image_path)
            del im_new,kpts, des
            gc.collect()
            index = index + 1
            print(index)


    descriptors = des_list[0][1]
    for image_path, descriptor in des_list[1:]:
        descriptors = np.vstack((descriptors, descriptor))

index为1时,处理第一张图片矩阵大小是[1739, 12000]。index为2时处理两张图片矩阵大小是[2231, 12000],明显不成倍数。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • janat945
    janat945 2019-05-07 12:51

    index为1时,处理第一张图片矩阵大小是[1739, 12000]。index为2时处理两张图片矩阵大小是[2231, 12000],明显不成倍数。

    点赞 评论

相关推荐