转载: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. Android开发之常用必备工具类图片bitmap转成字符串string与String字符串转换为bitmap图片格式

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...

  2. FastDFS+nginx整合模块安装

    FastDFS安装 安装gcc编译器 yum -y install gcc automake autoconf libtool make 上传解压两个文件包 libfastcommon是从FastDF ...

  3. java中变量在内存的位置

    package day02; /* * 成员变量:在堆内存中,因为对象的存在,才在内存中存在:作用于整改类中 * 局部变量:在栈内存中:作用于函数中,或者语句中 * */ class car{ //描 ...

  4. 测试JsonAnalyzer2的12个测试用例:

    测试用例如下: 01. Compact json text={"status":"","message":"success&quo ...

  5. 在微信公众号"码海"里学了一招:在update语句里使用case when 以避免多次更新导致的数据异常.

    需求:将emp表中工资大于一万的降到9成,工资少于一万的乘以1.2. 难点:如果分成两句update执行,在10000附近的值可能会执行两次. 钥匙:在update语句里采用case when,使更新 ...

  6. java 检查进程是否存在

    以nginx进程为例子 private final static String NAME_STRING = "nginx.exe"; //传入进程名称processName pub ...

  7. Idea没安装几款好用的插件,怎么风骚的写代码???

    ​ 工欲善其事,必先利其器,好的工具可以提升我们的开发效率,越来越多的Java程序员从Eclipse转到了Jetbrains家的Idea.今天给大家介绍的是我常用的十几款Idea必装的插件. ​ Ti ...

  8. linux下锁定关键文件/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab

    锁定/etc/passwd./etc/shadow./etc/group./etc/gshadow./etc/inittab,锁定关键的系统文件可以防止服务器提权后被篡改 1.对关键文件进行加锁,任何 ...

  9. 掌控安全sql注入靶场pass-05

    1.判断注入点 1 and 1=1 1 and 1=2 考虑存在布尔盲注 布尔盲注解释 当不能像前面那样直接在网页中显示我们要的数据时就需要用到盲注,来得到数据库之类的名字.基于布尔的盲注就是通过判断 ...

  10. [CF571B]Minimization(贪心+DP)

    题目链接 http://codeforces.com/problemset/problem/571/B 题意 给数组,得到公式最小值. 题解 由题分成的子数组只有两种长度,每种长度的数组数量也是固定的 ...