OpenCV  4.10.0
开源计算机视觉
加载中...
搜索中...
没有匹配项
函数
Eigen 支持

详细描述

提供这些功能以便 OpenCV-Eigen 互操作。它们将 Mat 对象转换到相应的 Eigen::Matrix 对象,反之亦然。关于 Matrix 模板类型的更多信息,请参阅 Eigen 文档

注意
使用这些功能需要在该标题之前包含 Eigen/Dense 或类似标题。

函数

template<typename _Tp >
static void cv::cv2eigen (const Mat &src, Eigen::Matrix< _Tp, 1, Eigen::Dynamic > &dst)
 
template<typename _Tp , int _rows, int _cols, int _options, int _maxRows, int _maxCols>
static void cv::cv2eigen (const Mat &src, Eigen::Matrix< _Tp, _rows, _cols, _options, _maxRows, _maxCols > &dst)
 
template<typename _Tp >
static void cv::cv2eigen (const Mat &src, Eigen::Matrix< _Tp, Eigen::Dynamic, 1 > &dst)
 
template<typename _Tp >
static void cv::cv2eigen (const Mat &src, Eigen::Matrix< _Tp, Eigen::Dynamic, Eigen::Dynamic > &dst)
 
template<typename _Tp , int _layout>
static void cv::cv2eigen (const Mat &src, Eigen::Tensor< _Tp, 3, _layout > &dst)
 cv::Mat 转换成 Eigen::Tensor。
 
template<typename _Tp , int _cols>
static void cv::cv2eigen (const Matx< _Tp, 1, _cols > &src, Eigen::Matrix< _Tp, 1, Eigen::Dynamic > &dst)
 
template<typename _Tp , int _rows>
static void cv::cv2eigen (const Matx< _Tp, _rows, 1 > &src, Eigen::Matrix< _Tp, Eigen::Dynamic, 1 > &dst)
 
template<typename _Tp , int _rows, int _cols, int _options, int _maxRows, int _maxCols>
static void cv::cv2eigen (const Matx< _Tp, _rows, _cols > &src, Eigen::Matrix< _Tp, _rows, _cols, _options, _maxRows, _maxCols > &dst)
 
template<typename _Tp , int _rows, int _cols>
static void cv::cv2eigen (const Matx< _Tp, _rows, _cols > &src, Eigen::Matrix< _Tp, Eigen::Dynamic, Eigen::Dynamic > &dst)
 
template<typename _Tp >
static Eigen::TensorMap< Eigen::Tensor< _Tp, 3, Eigen::RowMajor > > cv::cv2eigen_tensormap (InputArray src)
 cv::Mat 数据映射到 Eigen::TensorMap。
 
template<typename _Tp , int _rows, int _cols, int _options, int _maxRows, int _maxCols>
static void cv::eigen2cv (const Eigen::Matrix< _Tp, _rows, _cols, _options, _maxRows, _maxCols > &src, Matx< _Tp, _rows, _cols > &dst)
 
template<typename _Tp , int _rows, int _cols, int _options, int _maxRows, int _maxCols>
static void cv::eigen2cv (const Eigen::Matrix< _Tp, _rows, _cols, _options, _maxRows, _maxCols > &src, OutputArray dst)
 
template<typename _Tp , int _layout>
static void cv::eigen2cv (const Eigen::Tensor< _Tp, 3, _layout > &src, OutputArray dst)
 将 Eigen::Tensor 转换成 cv::Mat
 

功能文档

◆ cv2eigen() [1/9]

template<typename _Tp >
static void cv::cv2eigen ( const Mat src,
Eigen::Matrix< _Tp, 1, Eigen::Dynamic > &  dst 
)
inlinestatic

#include <opencv2/core/eigen.hpp>

以下是此函数的调用图

◆ cv2eigen() [2/9]

template<typename _Tp , int _rows, int _cols, int _options, int _maxRows, int _maxCols>
static void cv::cv2eigen ( const Mat src,
Eigen::Matrix< _Tp, _rows, _cols, _options, _maxRows, _maxCols > &  dst 
)
inlinestatic

#include <opencv2/core/eigen.hpp>

以下是此函数的调用图

◆ cv2eigen() [3/9]

template<typename _Tp >
static void cv::cv2eigen ( const Mat src,
Eigen::Matrix< _Tp, Eigen::Dynamic, 1 > &  dst 
)
inlinestatic

#include <opencv2/core/eigen.hpp>

以下是此函数的调用图

◆ cv2eigen() [4/9]

template<typename _Tp >
static void cv::cv2eigen ( const Mat src,
Eigen::Matrix< _Tp, Eigen::Dynamic, Eigen::Dynamic > &  dst 
)
inlinestatic

#include <opencv2/core/eigen.hpp>

以下是此函数的调用图

◆ cv2eigen() [5/9]

template<typename _Tp , int _layout>
static void cv::cv2eigen ( const Mat src,
Eigen::Tensor< _Tp, 3, _layout > &  dst 
)
inlinestatic

#include <opencv2/core/eigen.hpp>

cv::Mat 转换成 Eigen::Tensor。

此方法将cv::Mat转换为 Eigen 张量,形状为 (H x W x C), 其中:H = 行数 W = 列数 C = 通道数

用法

Mat a_mat(...);
// 为 Mat 填充值
Eigen::Tensor<float, 3, Eigen::RowMajor> a_tensor(...);
cv2eigen(a_mat, a_tensor);
n 维度密集数组类
定义 mat.hpp:812
static void cv2eigen(const Mat &src, Eigen::Tensor< _Tp, 3, _layout > &dst)
将 cv::Mat 转换为 Eigen::Tensor。
定义 eigen.hpp:133
以下是此函数的调用图

◆ cv2eigen() [6/9]

template<typename _Tp , int _cols>
static void cv::cv2eigen ( const Matx< _Tp, 1, _cols > &  src,
Eigen::Matrix< _Tp, 1, Eigen::Dynamic > &  dst 
)
inlinestatic

#include <opencv2/core/eigen.hpp>

以下是此函数的调用图

◆ cv2eigen() [7/9]

template<typename _Tp , int _rows>
static void cv::cv2eigen ( const Matx< _Tp, _rows, 1 > &  src,
Eigen::Matrix< _Tp, Eigen::Dynamic, 1 > &  dst 
)
inlinestatic

#include <opencv2/core/eigen.hpp>

以下是此函数的调用图

◆ cv2eigen() [8/9]

template<typename _Tp , int _rows, int _cols, int _options, int _maxRows, int _maxCols>
static void cv::cv2eigen ( const Matx< _Tp, _rows, _cols > &  src,
Eigen::Matrix< _Tp, _rows, _cols, _options, _maxRows, _maxCols > &  dst 
)
inlinestatic

#include <opencv2/core/eigen.hpp>

以下是此函数的调用图

◆ cv2eigen() [9/9]

template<typename _Tp , int _rows, int _cols>
static void cv::cv2eigen ( const Matx< _Tp, _rows, _cols > &  src,
Eigen::Matrix< _Tp, Eigen::Dynamic, Eigen::Dynamic > &  dst 
)
inlinestatic

#include <opencv2/core/eigen.hpp>

以下是此函数的调用图

◆ cv2eigen_tensormap()

template<typename _Tp >
static Eigen::TensorMap< Eigen::Tensor< _Tp, 3, Eigen::RowMajor > > cv::cv2eigen_tensormap ( InputArray  src)
inlinestatic

#include <opencv2/core/eigen.hpp>

cv::Mat 数据映射到 Eigen::TensorMap。

此方法使用形状为 (H x W x C) 的 Eigen TensorMap 包装现有的Mat数据数组,其中:H = 行数 W = 列数 C = 通道数

需要显式实例化返回类型。

注意
调用者应了解cv::Mat实例的生命周期,并采取适当的安全措施。当cv::Mat数据被释放时,cv::Mat实例将保留对数据的拥有权,而 Eigen::TensorMap 将失去访问权限。

下例初始化了 cv::Mat 并生成了 Eigen::TensorMap

float arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
Mat a_mat(2, 2, CV_32FC3, arr);
Eigen::TensorMap<Eigen::Tensor<float, 3, Eigen::RowMajor>> a_tensormap = cv2eigen_tensormap<float>(a_mat);
#define CV_32FC3
定义 interface.h:120
以下是此函数的调用图

◆ eigen2cv() [1/3]

template<typename _Tp , int _rows, int _cols, int _options, int _maxRows, int _maxCols>
static void cv::eigen2cv ( const Eigen::Matrix< _Tp, _rows, _cols, _options, _maxRows, _maxCols > &  src,
Matx< _Tp, _rows, _cols > &  dst 
)
inlinestatic

#include <opencv2/core/eigen.hpp>

以下是此函数的调用图

◆ eigen2cv() [2/3]

template<typename _Tp , int _rows, int _cols, int _options, int _maxRows, int _maxCols>
static void cv::eigen2cv ( const Eigen::Matrix< _Tp, _rows, _cols, _options, _maxRows, _maxCols > &  src,
OutputArray  dst 
)
inlinestatic

#include <opencv2/core/eigen.hpp>

以下是此函数的调用图

◆ eigen2cv() [3/3]

template<typename _Tp , int _layout>
static void cv::eigen2cv ( const Eigen::Tensor< _Tp, 3, _layout > &  src,
OutputArray  dst 
)
inlinestatic

#include <opencv2/core/eigen.hpp>

将 Eigen::Tensor 转换成 cv::Mat

此方法将形状为 (H x W x C) 的 Eigen::Tensor 转换为 cv::Mat,其中:H = 行数,W = 列数,C = 通道数

用法

Eigen::Tensor<float, 3, Eigen::RowMajor> a_tensor(...);
// 使用值填充 tensor
Mat a_mat;
eigen2cv(a_tensor, a_mat);
static void eigen2cv(const Eigen::Tensor< _Tp, 3, _layout > &src, OutputArray dst)
将 Eigen::Tensor 转换为 cv::Mat。
定义 eigen.hpp:101
以下是此函数的调用图