您的位置:首页 > 编程语言 > C语言/C++

C语言版本opencv中CvArr和CvMat和IplImage之间关系

2015-12-15 09:52 351 查看


opencv由C语言实现,但它用的结构体也是遵循面向对象的思想设计的。实际上IplImage由CvMat派生,而CvMat由CvArr派生。但CvMat和IplImage之间的关系就如同C++中的继承关系。实质上IplImage可以被认为从CvMat中派生的。第三个类CvArr,可以被视为一个抽象基类,CvMat由它派生。在函数原型中,会经常看到CvArr(更准确地说,CvArr*),当它出现时,便可以将CvMat*或者IplImage*传递到程序。

1、CvMat矩阵结构

typedef struct CvMat

{

int type;

int step;

/* for internal use only */

int* refcount;

int hdr_refcount;

union

{

uchar* ptr;

short* s;

int* i;

float* fl;

double* db;

} data;

#ifdef __cplusplus

union

{

int rows;

int height;

};

union

{

int cols;

int width;

};

#else

int rows;

int cols;

#endif

}

CvMat;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: