gpt4 book ai didi

c++ - Eigen:给map赋值

转载 作者:太空宇宙 更新时间:2023-11-03 21:57:59 25 4
gpt4 key购买 nike

我将 opencv 与 Eigen 结合使用。

这是一个关于如何将 opencv 垫链接到特征矩阵的示例: OpenCV CV::Mat and Eigen::Matrix

关键是使用Eigen的Map类型,可以指向opencv分配的内存。

根据 Eigen 文档,Map 应该是透明的,几乎所有适用于矩阵的操作也应该适用于 Map。 https://eigen.tuxfamily.org/dox/group__TutorialMapClass.html

这是上面链接中的一些代码。 m2map 指向一个名为m2的矩阵的内存:

m2map(3) = 7;   // this will change m2, since they share the same array

但对我来说,即使是最简单的任务也会失败:

Eigen::Map<Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>> eigenHeatmap(heatmap.ptr<float>(), heatmap.rows, heatmap.cols);

eigenHeatmap=0.f;

产生:

/.../Code.cpp:69:25: error: no match for ‘operator=’ (operand types are ‘Eigen::Map<Eigen::Matrix<float, -1, -1, 1> >’ and ‘float’)
eigenHeatmap=0.f;

整个错误信息相当长:https://pastebin.com/i3AWs6C7

我正在使用 eigen3.3.3、opencv3.2.0 和 g++ 5.4.0

最佳答案

您应该尝试 eigenHeatmap.setZero();eigenHeatmap.setConstant(0.f);

关于c++ - Eigen:给map赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43349471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com