cv::Mat和eigen::vector3d的转换
时间: 2023-08-02 18:06:57 浏览: 247
eigen-face:使用PCS和SVM执行分类
你可以使用以下代码将 `cv::Mat` 转换为 `Eigen::Vector3d`:
```cpp
cv::Mat cv_mat; // 假设已经初始化并赋值
Eigen::Vector3d eigen_vec;
cv::cv2eigen(cv_mat, eigen_vec);
```
这里使用了OpenCV的 `cv2eigen` 函数来进行转换。注意,需要确保 `cv_mat` 是 3x1 的矩阵,否则转换将失败。
相反,要将 `Eigen::Vector3d` 转换为 `cv::Mat`,你可以使用以下代码:
```cpp
Eigen::Vector3d eigen_vec; // 假设已经初始化并赋值
cv::Mat cv_mat = cv::Mat::zeros(3, 1, CV_64FC1);
cv::eigen2cv(eigen_vec, cv_mat);
```
这里使用了OpenCV的 `eigen2cv` 函数来进行转换。同样需要注意,如果你的 `cv_mat` 不是 3x1 的矩阵,转换也会失败。
阅读全文