繁体   English   中英

OpenCV CvMat到Mat和指针

[英]OpenCV CvMat to Mat and pointers

我正在尝试将一些代码从使用OpenCV的CvMat转换为Mat,但是在使用指针时遇到了一些麻烦。

这是原始代码:

CvMat *m_projectedTrainFaceMat;
float d_i;
i = 0;
d_i = projectTestFace[i] - m_projectedTrainFaceMat->data.fl[iTrain * m_nEigens + i];

这是我更新的代码:

Mat *m_projectedTrainFaceMat;
float d_i;
i = 0;
d_i = projectTestFace[i] - m_projectedTrainFaceMat->data[iTrain * m_nEigens + i];

如您所见,我从对数据的调用中删除了.fl,但我不太清楚如何以浮点数形式返回数据。

有什么建议么? 我尝试将其强制转换为float和(float *),但最终导致错误/错误。

e:projectTestFace是浮点数*。

假设您的记忆是连续的 ,那么上面的Andrey的代码是正确的。 在某些情况下并非如此,我们不应该假设。 也许更直接的方法(不必使用指针)如下:

d_i = projectTestFace[i] - (*m_projectedTrainFaceMat).at<float>(row, col);

与Andrey相似,我假设您将m_projectedTrainFaceMat初始化为具有CV_32FC1元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM