c++ - 如何在 OpenCV 中访问多维 Mat 中的二维矩阵

标签 c++ matlab opencv matrix

我在OpenCV中有一个多维矩阵,例如

Mat matrix(1,1,CV_64FC(100), Scalar(0));

我知道在 Matlab 中访问多维矩阵中的二维矩阵非常容易,例如 matrix(:,:,1), matrix(:,:,100)。但是我们应该如何在 OpenCV 中做到这一点呢? OpenCV确实可以使用at来访问矩阵中的一个元素,但是我们如何在固定 channel 的情况下访问一个二维矩阵呢?谢谢!

最佳答案

一个简单的方法如下

Mat matrix(1,1,CV_64FC(100), Scalar(0));

cv::vector<cv::Mat> channels;
cv::split(matrix,channels);
int i = 0;
cv::Mat channel_i = channels[i];

请看文档split并且可能用于更高级的操作 mixChannels . (我自己没用过mixChannels)

关于c++ - 如何在 OpenCV 中访问多维 Mat 中的二维矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25333486/

相关文章:

c++ - Gcc - undefined reference ,但库包含匹配的符号

c++ - 不同概率的随机数

matlab - 一对多 SVM 中的 10 折交叉验证(使用 LibSVM)

matlab - CNN 特征的后期融合

c++ - 图像中的 Opencv 评级特征

c++ - 如何仅从 linux SO 库中导出某些函数?

c++ - Octave C++ 和 VS2010

opencv - 打开简历构建错误

c++ - 错误 LNK2019 : unresolved external symbol Visual Studio 2013 with openCV

c++ - 如何将C++结构暴露给QML?