刚开始学习图片处理没多久,恳请各位大佬指教。图片已经灰度处理,也用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],明显不成倍数。