C 的功能类似于Numpy Flatten
function in C++ similar to numpy flatten
c 或openCV中是否有任何功能可以执行与numpy flatten((函数相同的操作?
我认为我的问题含糊不清。我正在尝试在C OPENCV环境中使用K-Means细分,在Python中给出了一个示例。/p>
center = np.uint8(center)
res = center[label.flatten()]
我已经能够完成大部分操作,直到C 中的这一扁平事物标签的尺寸为921600 x 1,我也可以在C 中获得。中心维度为4x3矩阵。我想这里的技巧是使所有标签值都特定于中心值。因此,最后" res"变为921600 x 3。
所以我的问题是如何使用OpenCV在C 中进行此操作?
谢谢
,所以我已经弄清楚了,没有直线或1行解决方案(如果有我知道哈哈(
res = center[label.flatten()]
可以在C OpenCV中进行以下操作。
for(int i = 0; i<labels.rows ; i++)
{
if(labels.at<int>(i) == 0) {
res.push_back(centers.row(0));
} else if(labels.at<int>(i) == 1) {
res.push_back(centers.row(1));
} else if(labels.at<int>(i) == 2) {
res.push_back(centers.row(2));
} else{
res.push_back(centers.row(3));
}
}
谢谢。
旧问题,但以防万一有人在这里结束,正确答案是 reshape MAT class的方法。检查OpenCV文档以获取更多信息:https://docs.opencv.org/4.3.0/d3/d63/classcv_1_1mat.html#a4eb96e3251417fa88b78b78e2abd6cfd6cfd7d8
这是一个执行扁平的示例函数:
cv::Mat Flatten(const cv::Mat& mat)
{
return mat.reshape(1, 1);
}
相关文章:
- 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 的功能类似于Numpy Flatten