加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – OpenCV如何使用Eigen?

发布时间:2020-12-16 03:39:47 所属栏目:百科 来源:网络整理
导读:当从源代码编译OpenCV时,有CMake选项WITH_EIGEN,它说“包含Eigen3支持”.然而,文档中没有任何地方(或者通过谷歌,在这个问题上),我可以找出这是什么,以及如何使用它.我可以想象几个选择: 我可以继续使用cv :: mat,而像cv :: Mat :: inv()这样的函数会开始使
当从源代码编译OpenCV时,有CMake选项WITH_EIGEN,它说“包含Eigen3支持”.然而,文档中没有任何地方(或者通过谷歌,在这个问题上),我可以找出这是什么,以及如何使用它.我可以想象几个选择:

我可以继续使用cv :: mat,而像cv :: Mat :: inv()这样的函数会开始使用Eigen的算法吗?

或者,WITH_EIGEN标志基本上什么也不做,我需要将cv :: Mat转换为Eigen(或使用Eigen :: Map),然后手动使用Eigen的算法?

解决方法

在一起工作后,我可以提供答案:

除了使eigen-opencv可互操作性功能可用外,WITH_EIGEN标志什么也不做.

Can I just continue using cv::Mat,and certain functions (which ones?) like cv::Mat::inv() will start using the algorithms from Eigen?

不,cv :: Mat :: inv()没有智能逻辑,将使用OpenCV算法.

Or does the WITH_EIGEN flag basically do nothing and I need to convert the cv::Mat’s to Eigen (or use Eigen::Map) and then use Eigen’s algorithms manually?

正是这样才能走.我不一定建议使用cv2eigen()和eigen2cv().我使用Eigen :: Map来映射内存(无需复制任何代价)和cv :: Mat(void *,…)来映射数据.小心,但行/ col主要的标志和东西.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读