Eigen::Vector3f转换成cv::Mat的代码
时间: 2023-07-02 18:16:52 浏览: 99
下面是一个将`Eigen::Vector3f`转换成`cv::Mat`的完整示例代码:
```cpp
#include <iostream>
#include <Eigen/Dense>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
int main()
{
Eigen::Vector3f vec(1.0f, 2.0f, 3.0f); // 定义一个3维向量
std::cout << "Vector: " << vec.transpose() << std::endl;
cv::Mat mat = cv::Mat(vec); // 将向量转换为矩阵
std::cout << "Matrix:\n" << mat << std::endl;
cv::Mat mat_col = mat.reshape(1, 3); // 将矩阵转换为3列1行的矩阵
std::cout << "Matrix (column):\n" << mat_col << std::endl;
cv::Mat mat_row = mat.reshape(1, 1); // 将矩阵转换为1行3列的矩阵
std::cout << "Matrix (row):\n" << mat_row << std::endl;
cv::imshow("Matrix", mat); // 显示矩阵
cv::waitKey(); // 等待按键
return 0;
}
```
这个示例代码使用了`Eigen`库定义了一个3维向量,并将其转换为`cv::Mat`类型的矩阵,最后将矩阵显示出来。
阅读全文