0

我是 OpenCV 的新手,我即将完成我的第一个大型程序。实际上,如果没有发生令人讨厌的异常,我会这样做。这里是: OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in unknown function, file ........\ocv\opencv\src\cxcore\cxarr ay.cpp,第 2476 行 这是发生异常的行: cvMatMul(&matIntrinsec, &matExtrinsec, &result); 对于主题来说,了解这三个矩阵相乘可能也很重要:(因为也许我只是在用它们做一些愚蠢的事情)

基本上对于 matIntrinsec 和 matExtrinsec,我从文件中读取值,它工作得很好,我已经测试过了。我将值放在二维数组中,然后使用 CvMat 函数构建矩阵

cvInitMatHeader(&matIntrinsec, 3, 3,CV_64FC1 , this->intrinsecos);

cvInitMatHeader(&matExtrinsec, 3, 3,CV_64FC1 , this->extrinsecos);

至于“结果”参数,它基本上是一个统一的 CvMat 变量,用于接收乘法的结果:

CvMat 结果;

如果这个问题很愚蠢,我很抱歉。但请帮助我!

4

1 回答 1

0

使用 OpenCV 的 C API 时,您必须手动将“目标”参数初始化为函数。由于您知道输出的大小,因此可以使用cvCreateMat(). 或者,您可以切换到 C++ API,其中函数会自动为函数分配目标矩阵cv::Mat::create()

于 2010-10-30T15:58:56.163 回答