我在OpenCV中有一个多维矩阵,例如
Mat matrix(1,1,CV_64FC(100), Scalar(0));
我知道在Matlab中访问多维矩阵中的二维矩阵非常容易,例如矩阵(:,:,1),矩阵(:,:,100)。但是我们应该如何在OpenCV中做到这一点?确实,OpenCV可以使用at来访问矩阵中的一个元素,但是如何在修复通道时访问二维矩阵?谢谢!
答案 0 :(得分:1)
一个简单的方法是以下
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)
答案 1 :(得分:1)
请注意,OpenCV中的多通道矩阵和多维矩阵之间存在差异。
如果您对后者感兴趣,这里有一个示例,说明如何访问3d Matrix的每个维度