相当于numpy.exexpand_dims()和numpy.contenate()的C++
C++ equivalent of numpy.expand_dims() and numpy.concatenate()
正如标题中提到的,我目前从OpenCV中读取了一些2D图像数据,我需要将维度更改为4D。例如,维度[320, 720]
到[1, 320, 720, 1]
,然后使整个数据成为单个4D矩阵。
在Python中,我可以对每个图像执行numpy.expand_dims()
,然后将它们一起执行numpy.concatenate()
。我想知道是否有一些等效的API可以在C++中使用。我在Tensorflow
中找到了expand_dims()
,但它只适用于张量,我还没有找到concatenate()
的任何内容。
欢迎使用OpenCV
、Tensorflow
、Boost
等图书馆。但我想让事情变得更轻松,所以如果我能自己实现(如果不是太复杂的话(会更好。提前谢谢。
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阵列复制到适当的插槽中。
相关文章:
- C++返回 Numpy 数组的 Python 扩展模块
- numpy C API 中的import_array如何工作?
- 如何使用C++范围来实现numpy.ndindex?
- 传递 boost::p ython::numpy::ndarray 作为 boost::p ython 函数的(默认或非
- 在 Cython 中将C++向量转换为 numpy 数组,而无需复制
- Boost Python Numpy - 要初始化的未定义引用
- 如何通过 cython 将 numpy 数组列表传递给 C++
- numpy.load 给出 ValueError: descr 不是有效的 dtype 描述符:
- Pybind11 默认参数 numpy 数组或 None
- C++ - 与 Numpy 中的矢量版本相比,Argsort 效率低的矢量版本实现
- 如何使用 CMake 链接"numpy/arrayobject.h"
- 相当于numpy.exexpand_dims()和numpy.contenate()的C++
- Pybind11:在C++中使用Pybind11转换numpy数组的问题
- 使用SWIG将numpy数组元素(int)传递给c++int
- 如何在 swig 中使用 numpy.i?
- 如何将 numpy 二维数组作为一种可以用C++读取的二进制格式存储在磁盘上
- Cython:如何在不需要 GIL 的情况下从 numpy 内存视图转到矢量[对[双,双]]?
- 链接问题 boost::p ython::numpy.
- 从 numpy 数组获取指针以将图像发送到C++
- 从结构的 C 数组到带有 ctypes 的 NumPy 数组的高效转换