arma::mat与cv::Mat转换
2016-04-06 14:17
387 查看
首先简要介绍一下,今天涉及到的两个库:Armadillo是目前使用比较广的C++矩阵运算库之一,是在C++下使用Matlab方式操作矩阵很好的选择。OpenCV在计算机视觉领域中地位不必多说,OpenCV自带的矩阵计算功能算不上是专业的矩阵计算库。现在的问题是,在同一个项目里同时使用两个库,它们的类型转换该怎么办?
Convert CV::Mat To Arma::mat http://stackoverflow.com/questions/26118862/convert-cvmat-to-armamat
【OpenCV】访问Mat图像中每个像素的值 /article/1357511.html
armadillo 官方文档:http://arma.sourceforge.net/docs.html
转换函数:
static void Cv_mat_to_arma_mat(const cv::Mat& cv_mat_in, arma::mat& arma_mat_out) {//convert unsigned int cv::Mat to arma::Mat<double> for(int r=0;r<cv_mat_in.rows;r++){ for(int c=0;c<cv_mat_in.cols;c++){ arma_mat_out(r,c)=cv_mat_in.data[r*cv_mat_in.cols+c]/255.0; } } }; template<typename T> static void Arma_mat_to_cv_mat(const arma::Mat<T>& arma_mat_in,cv::Mat_<T>& cv_mat_out) { cv::transpose(cv::Mat_<T>(static_cast<int>(arma_mat_in.n_cols), static_cast<int>(arma_mat_in.n_rows), const_cast<T*>(arma_mat_in.memptr())), cv_mat_out); };
调用:
//convert cv::Mat to arma::mat arma::mat img(cvImg.rows,cvImg.cols);//cvImg is a cv::Mat Cv_mat_to_arma_mat(cvImg,img);
//convert arma::mat to cv::Mat cv::Mat_<double> cv_img; Arma_mat_to_cv_mat<double>(arma_img,cv_img);
参考:
C++矩阵运算库推荐 /article/7929651.htmlConvert CV::Mat To Arma::mat http://stackoverflow.com/questions/26118862/convert-cvmat-to-armamat
【OpenCV】访问Mat图像中每个像素的值 /article/1357511.html
armadillo 官方文档:http://arma.sourceforge.net/docs.html
相关文章推荐
- asp.net 获取系统字体
- Coherence-Enhancing Shock Filters(附源码)
- tomcat
- 变更、安全管理
- 【unity小技巧之二】使用unity3d调用命令行工具
- c++ 小项目 大数四则运算(整数)
- NUCLEO-L476RG开发板学习笔记汇总
- Linux下打印调试信息
- JAVA中转义字符
- 设计模式之桥接模式
- 自定义Dialog(二)之Dialog与Activity传值
- linux安装composer
- 常用js代码片段
- asp.net 动态添加title、meta tages、css
- CCF-最大矩形
- thread安全性(写的不错)
- 学习Button按钮控件(一)
- CodeForces - 616B Dinner with Emma (模拟)水
- C#简单工厂设计模式
- oracle统计分析函数技术详