小编Sev*_* Ba的帖子

OpenCV的cvMat的内存结构是什么?

想象一下,我有以下几点:

CvMat* mat = cvCreateMat(3,3,CV_16SC3)
Run Code Online (Sandbox Code Playgroud)

这是通道3的3x3整数矩阵.

现在,如果您查看OpenCV文档,您会发现以下内容作为cvMat的减速:

typedef struct CvMat {

int type;
int step;

int* refcount;

union
{
    uchar* ptr;
    short* s;
    int* i;
    float* fl;
    double* db;
} data;

union
{
    int rows;
    int height;
};

union
{
    int cols;
    int width;
};
} CvMat;
Run Code Online (Sandbox Code Playgroud)

现在,我想使用data.ptr,它是指向存储在cvMat中的数据的指针.但是,我很难理解内存是如何布局的.如果我有一个3通道矩阵,这是如何工作的?对于一个通道来说它很简单,因为它只是一个简单的MxN矩阵,其中M是行,N是cols.但对于3通道,这些MxN矩阵中有3个吗?有人可以告诉我如何通过data.ptr进行3通道矩阵的初始化以及如何访问这些值吗?谢谢.

opencv

14
推荐指数
1
解决办法
1万
查看次数

标签 统计

opencv ×1