c – OpenCV如何使用Eigen?

前端之家收集整理的这篇文章主要介绍了c – OpenCV如何使用Eigen?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当从源代码编译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主要的标志和东西.

猜你在找的C&C++相关文章