本文最后更新于:2024年5月7日 下午
OpenCV 支持与 Eigen 之间的数据转化,本文记录方法。
数据转换
OpenCV 算子
-
cv -> eigen:
cv2eigen()
-
eigen -> cv:
eigen2cv()
-
需要引入 :
1
#include <opencv2/core/eigen.hpp>
-
官方文档:https://docs.opencv.org/4.5.5/d0/daf/group__core__eigen.html#ga1add06b744a69bc05e1e16a5eb20be3e
示例
- 转换代码
1 |
|
- 效果示例,可以看到 Tensor 按照预定想法处理了图像
-
Eigen 转 OpenCV 时需要 Tensor 为 3 维矩阵,不然会报错:
如果是二维 Tensor 需要升维
1 |
|
- 与 OpenCV 官网示例代码有所出入,建议不加
Eigen::RowMajor
。
说明:这里说明一下,OpenCV 官网文档建议这样建立 Tensor 对象:
Eigen::Tensor<uint8_t, 3, Eigen::RowMajor> a_tensor;
但是这样建立对象后简单的操作就会报错,建议不加
Eigen::RowMajor
,截至目前我在代码中没发现删除这句话的弊端。
参考资料
-
https://docs.opencv.org/4.5.5/d0/daf/group__core__eigen.html#ga1add06b744a69bc05e1e16a5eb20be3e
-
https://blog.csdn.net/weixin_42587961/article/details/94446580
文章链接:
https://www.zywvvd.com/notes/coding/cpp/eigen/eigen-opencv/
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
微信支付
支付宝支付