簡體   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