0

我正在研究一些openCV文档和标题,并尝试完全理解这里发生了什么。

core_c.h

CVAPI(CvMat*) cvInitMatHeader( CvMat* mat, int rows, int cols,
                          int type, void* data CV_DEFAULT(NULL),
                          int step CV_DEFAULT(CV_AUTOSTEP) );

首先,在声明中cvInitMatHeader

void* data CV_DEFAULT(NULL),
int step CV_DEFAULT(CV_AUTOSTEP) 

这种输入变量是什么意思?这和我们平时使用的声明有什么区别,比如

void* data 
int step 

其次,我阅读了我们实际上可以使用 cvInitMatHeader 的教程

double a[] = { 1,  2,  3,  4,
           5,  6,  7,  8,
           9, 10, 11, 12 };
CvMat Ma;
cvInitMatHeader(&Ma, 3, 4, CV_64FC1, a);

输入变量的数量与标题不匹配,我找不到其他函数重载。

为什么这可以工作?

4

1 回答 1

1

从给定的代码中,我可以推断出这CV_DEFAULT(x)是一个扩展为= x. 如果您不熟悉默认参数,请参阅默认参数。

于 2012-09-23T13:01:29.440 回答