【问题标题】:how to access 2D matrix in a multi-dimension Mat in OpenCV如何在 OpenCV 中访问多维 Mat 中的二维矩阵
【发布时间】:2014-08-15 20:10:35
【问题描述】:

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

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

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

【问题讨论】:

    标签: c++ matlab opencv matrix


    【解决方案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)

    【讨论】:

      【解决方案2】:

      请注意,OpenCV 中的多通道矩阵和多维矩阵之间存在差异。

      如果您对后者感兴趣,这里有一个示例,说明如何访问 3d Matrix 的每个维度

      【讨论】:

        猜你喜欢
        • 2012-09-04
        • 2014-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 2015-08-14
        • 1970-01-01
        相关资源
        最近更新 更多