转载:https://blog.csdn.net/u012507022/article/details/50979011?utm_source=blogxgwz5

最近在写Opencv程序,用到离散小波变换,但Opencv没有提供离散小波变换函数。但找到了离散小波变换函数的C++程序,发现在C++中,可以用 vector<vector<double>> 来表示矩阵。

  1.  
    int Height = 200;
  2.  
    int Width = 400;
  3.  
    vector<vector<double>> signal2(Height,Width);
  4.  
    cout<<"矩阵的行数"<<signal2.size()<<endl;
  5.  
    cout<<"矩阵的列数"<<signal2[0].size()<<endl;

vector<vector<double>>与Mat数据类型可以进行转换

  1.  
    //Mat 转换为vector<vector<double>>
  2.  
    void Mat2vector(Mat &src,vector<vector<double>> &dst)
  3.  
    {
  4.  
    assert( src.rows== dst.size());
  5.  
    MatIterator_<double> it, it2;
  6.  
    it = src.begin<double>();
  7.  
    it2 = src.end<double>();
  8.  
    for(int i=0;i<src.rows;i++)
  9.  
    {
  10.  
    for(int j=0;j<src.cols;j++)
  11.  
    {
  12.  
    dst[i][j]=*it++;
  13.  
    }
  14.  
    }
  15.  
    }
  16.  
    //vector<vector<double>> 转换为Mat
  17.  
    void Vector2Mat(vector<vector<double>>src,Mat dst)
  18.  
    {
  19.  
    assert( dst.rows== src.size());
  20.  
    MatIterator_<double> it = dst.begin<double>();
  21.  
    for(int i=0;i<src.size();i++)
  22.  
    {
  23.  
    for(int j=0;j<src[0].size();j++)
  24.  
    {
  25.  
    *it=src[i][j];
  26.  
    it++;
  27.  
    }
  28.  
    }
  29.  
    }
 

C++vector and opencv Mat的更多相关文章

  1. OpenCV MAT基本图像容器

    参考博客: OpenCv中cv::Mat和IplImage,CvMat之间的转换 Mat - 基本图像容器 Mat类型较CvMat和IplImage有更强的矩阵运算能力,支持常见的矩阵运算(参照Mat ...

  2. vector类转换Mat类

    前言 一个个数据push back到vector之后,可以使用Mat()函数将vector类型转换为Mat类型. 在opencv中Mat类的构造函数中有一个构造函数可以直接把vector类转换为Mat ...

  3. OPENCV mat类

    OpenCV参考手册之Mat类详解 目标 我们有多种方法可以获得从现实世界的数字图像:数码相机.扫描仪.计算机体层摄影或磁共振成像就是其中的几种.在每种情况下我们(人类)看到了什么是图像.但是,转换图 ...

  4. Matlab to OpenCV Mat

    convert Matlab matrix to OpenCV Mat. Support CV_32FC3 only currently. The Code int matlab2opencv(cv: ...

  5. OpenCV Mat数据类型及位数总结(转载)

    OpenCV Mat数据类型及位数总结(转载) 前言 opencv中很多数据结构为了达到內存使用的最优化,通常都会用它最小上限的空间来分配变量,有的数据结构也会因为图像文件格式的关系而给予适当的变量, ...

  6. OpenCV Mat数据类型指针ptr的使用

    OpenCV Mat数据类型指针ptr的使用 cv::Mat image = cv::Mat(400, 600, CV_8UC1); //宽400,长600 uchar * data00 = imag ...

  7. Qt QImage与OpenCV Mat转换

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51029382 应一个朋友的要求,整理总 ...

  8. 快速遍历OpenCV Mat图像数据的多种方法和性能分析 | opencv mat for loop

    本文首发于个人博客https://kezunlin.me/post/61d55ab4/,欢迎阅读! opencv mat for loop Series Part 1: compile opencv ...

  9. OpenCv Mat操作总结

    Author:: Maddock Date: 2015-03-23 16:33:49 转载请注明出处:http://blog.csdn.net/adong76/article/details/4053 ...

随机推荐

  1. ES6常用总结(一)

    let,const let声明变量,const声明常量,两者均为块级作用域 let,const在块级作用域内不允许重复声明 const声明的基本数据类型不可以修改,引用数据类型可以修改.具体看我的另一 ...

  2. AndroidStudio中利用git下载github或者git.oschina的代码时报错:repository test has failed解决方法

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 微博:http://weibo.com/mcxiaobing AndroidS ...

  3. springBoot整合spring security+JWT实现单点登录与权限管理--筑基中期

    写在前面 在前一篇文章当中,我们介绍了springBoot整合spring security单体应用版,在这篇文章当中,我将介绍springBoot整合spring secury+JWT实现单点登录与 ...

  4. Myabtis动态SQL,你真的会了吗?

    目录 前言 什么是动态SQL? 常用的标签 if choose.when.otherwise where foreach set sql include 总结 拓展一下 Mybatis中如何避免魔数? ...

  5. Linux命令使用教程

    Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的. Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包. 目 ...

  6. 实验 2:Mininet 实验——拓扑的命令脚本生成

    实验 2:Mininet 实验--拓扑的命令脚本生成 一.实验目的 掌握 Mininet 的自定义拓扑生成方法:命令行创建.Python 脚本编写 二.实验任务 通过使用命令行创建.Python 脚本 ...

  7. Q200510-03-03 :LRU缓存机制

    LRU缓存机制运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制.它应该支持以下操作: 获取数据 get 和 写入数据 put . 获取数据 get(key) - 如果密钥 ( ...

  8. java实现内网通信

    package newTest; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; ...

  9. JVM垃圾回收行为的并行与并发

    程序的并行和并发 程序的并发(Concurrent) 在操作系统中,是指一个时间段中有几个程序都处于己启动运行到运行完毕之间,且这几个程序都是在同一个处理器_上运行. 并发不是真正意义上的“同时进行” ...

  10. spring 之BeanPostProcessor&BeanFactoryPostProcessor

    http://www.cnblogs.com/sishang/p/6576665.html https://www.cnblogs.com/sishang/p/6588542.html