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];
正如您所看到的,我从对data的调用中删除了.fl,但我不能完全弄清楚如何将数据作为浮点数返回。
有什么建议吗?我试过将其转换为float和(float *),但它们最终导致错误/错误。
e: projectTestFace是一个float*.
Andrey上面的代码是正确的,假设你的内存是连续的有些情况下不是这样,我们不应该假设。也许更直接的方法(不需要使用指针)如下:
d_i = projectTestFace[i] - (*m_projectedTrainFaceMat).at<float>(row, col);
与Andrey类似,我假设您的m_projectedTrainFaceMat被初始化为具有CV_32FC1元素。
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 为什么使用 "this" 指针调用派生成员函数?
- Difference in displaying cv2 Mat
- 函数向量_指针有不同的原型,我可以构建一个吗
- OpenCV如何处理Mat作为指针来加速代码
- 'cv::Mat::type':非标准语法;使用 '&' 创建指向成员的指针
- 为什么用cv::Mat(opencv)更改指向数据的指针与cv::filter2D有问题
- 如何强制CV :: MAT表现为明智的指针
- 从指针创建Mat
- Mat初始化的双指针
- 通过模糊 mat 从 std::vector: <int>cv::Exception 中获取错误指针
- c++中有Opencv 2.3 Mat指针吗?
- 当重新分配或作为ROI时,是否会自动释放Mat指针,源Mat被释放
- 如何将Mat数据类型转换为无符号短指针
- OpenCV -如何从uint8_t指针创建Mat
- OpenCV CvMat到Mat和指针
- 错误:' -> '的基本操作数具有非指针类型' cv::Mat '
- 如何将cv::Mat转换为浮点指针
- 表达式列表在创建指向 Mat 向量的指针时被视为初始值设定项中的复合表达式