如标题中所述,我目前有一些从OpenCV读取的2D图像数据,我需要将尺寸更改为4D。例如,将尺寸标注[320, 720]为[1, 320, 720, 1],然后使整个数据成为单个4D矩阵。在Python中,我可以numpy.expand_dims()对每个图像进行处理,然后再对numpy.concatenate()它们进行处理。我想知道是否可以在C ++中使用一些等效的API。我在中找到expand_dims()了Tensorflow它,但是它仅适用于张量,并且还没有找到任何东西concatenate()。图书馆像OpenCV,Tensorflow,Boost都欢迎。但是我想减轻负担,所以如果我自己实现(如果不太复杂的话)会更好。先感谢您。
1 回答

红颜莎娜
TA贡献1842条经验 获得超12个赞
expand_dimsplus 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数组复制到适当插槽中的能力。
添加回答
举报
0/150
提交
取消