将取自多个图像的所有描述符保存在 Python 3.5

Save all the descriptors taken from multiple images in Python 3.5

我正在尝试提取我数据库中的多个图像的描述符。使用的方法为我提供了每个图像的关键点矩阵和描述符矩阵,因此我想将它们分组为一个矩阵。

我试过一个循环:

kp_all = numpy.hstack((kp_all, kp))
des_all = numpy.hstack((des_all, des))

其中 kp_all 和 des_all 被正确初始化,因为是第一个图像的描述符,所以我想将其他描述符连接到该矩阵中。给出的错误是:

ValueError: all the input array dimensions except for the concatenation 
axis must match exactly

向量的维度是:

Processing image....
dimension kp_all and des_all (10, 7) (10, 32)
Processing image....
dimension kp and des (46, 7) (46, 32)
Processing image....
dimension kp and des (17, 7) (17, 32)

有人知道吗?谢谢!!!

我找到了解决方案...只需创建一个空列表:

kp_all = []
des_all = []

并附加循环中的每个描述符:

kp_all.append(kp)
des_all.append(des)

根据 OP 的评论并观察变量的维度 kp_alldes_allkpdes

dimension kp_all and des_all (10, 7) (10, 32)
dimension kp and des (46, 7) (46, 32)
dimension kp and des (17, 7) (17, 32)

我们可以使用,np.vstack

kp_all = np.vstack((kp_all, kp))
des_all = np.vstack((des_all, des))