如何在opencv中访问3d矩阵的深度作为一维数组/向量

时间:2016-02-23 09:43:04

标签: c++ opencv

int sizes[3] = {49, 49, 5};
cv::Mat matX(3, sizes, CV_32F);

如何在matX中的所有2d切片(2D矩阵)中获得具有相同行col参数的像素。与MATLAB中的matX(row,col,:)类似。

我已尝试在循环中使用此功能

cv::Range ranges[3];
ranges[0] = Range(r, r + 1); // Row
ranges[1] = Range(c, c + 1); // Column
ranges[2] = Range::all();    // Depth I suppose

cv::Mat depth = matX(ranges);

但深度是一个3d矩阵。另外,有没有办法查看3d矩阵或必须循环和打印?

编辑:这是我以前获得的深度。不确定它是否是最佳方式。

cv::Range ranges[3];
ranges[0] = Range(r, r + 1); // Row
ranges[1] = Range(c, c + 1); // Column
ranges[2] = Range::all();    // Depth I suppose

cv::Mat depth(matX(ranges).clone()); // This has the data I need but it's still 3d.
cv::Mat depth1D(1, &matX.size[2], depth.type(), depth.data);

0 个答案:

没有答案