相当于numpy.exexpand_dims()和numpy.contenate()的C++

C++ equivalent of numpy.expand_dims() and numpy.concatenate()

本文关键字:numpy contenate C++ exexpand dims 相当于      更新时间:2023-10-16

正如标题中提到的,我目前从OpenCV中读取了一些2D图像数据,我需要将维度更改为4D。例如,维度[320, 720][1, 320, 720, 1],然后使整个数据成为单个4D矩阵。

在Python中,我可以对每个图像执行numpy.expand_dims(),然后将它们一起执行numpy.concatenate()。我想知道是否有一些等效的API可以在C++中使用。我在Tensorflow中找到了expand_dims(),但它只适用于张量,我还没有找到concatenate()的任何内容。

欢迎使用OpenCVTensorflowBoost等图书馆。但我想让事情变得更轻松,所以如果我能自己实现(如果不是太复杂的话(会更好。提前谢谢。

expand_dims加上concatenate,在更迭代的语言中可以写成:

In [107]: x = np.arange(12).reshape(3,4)
In [109]: y = np.zeros((2,3,4,3),dtype=int)
In [110]: for i in range(2):
...:     for j in range(3):
...:         y[i,:,:,j] = x
...:         
In [111]: y
Out[111]: 
array([[[[ 0,  0,  0],
[ 1,  1,  1],
[ 2,  2,  2],
[ 3,  3,  3]],
[[ 4,  4,  4],
[ 5,  5,  5],
....
[10, 10, 10],
[11, 11, 11]]]])

换句话说,您所需要的只是能够创建合适大小的目标阵列,以及能够将2d阵列复制到适当的插槽中。