前言

一个个数据push back到vector之后,可以使用Mat()函数将vector类型转换为Mat类型。

在opencv中Mat类的构造函数中有一个构造函数可以直接把vector类转换为Mat类。

代码:

std::vector<int> responses;
cv::Mat tres;
tres = Mat(responses, true);//vector2mat

该构造函数的定义如下(在mat.hpp文件中):

template<typename _Tp> inline Mat::Mat(const vector<_Tp>& vec, bool copyData)
: flags(MAGIC_VAL | DataType<_Tp>::type | CV_MAT_CONT_FLAG), //Mat的基本数据类型与vector保持一致
dims(), rows((int)vec.size()), cols(), data(), refcount(),//生成的Mat是只有1列,行数等于vector.size()的矩阵
datastart(), dataend(), allocator(), size(&rows)
{
if(vec.empty()) //如果vector对象内部没有元素的话,直接返回空矩阵
return;
if( !copyData ) //判断是否需要拷贝数据
{ //如果不需要Copy数据,则直接生成一个以Mat方式操纵vector的Mat索引头
step[] = step[] = sizeof(_Tp);
data = datastart = (uchar*)&vec[];
datalimit = dataend = datastart + rows*step[];
}
else //将vector内部的数据也完全拷贝一份给mat
Mat((int)vec.size(), , DataType<_Tp>::type, (uchar*)&vec[]).copyTo(*this); //这个拷贝方式的用法非常好!
}

注意:copyData的值意味着Mat类型的变量是浅拷贝还是深拷贝.

参考:

1.http://blog.csdn.net/zhjm07054115/article/details/26988581

2.http://blog.csdn.net/u011484045/article/details/44134201

做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。

vector类转换Mat类的更多相关文章

  1. 数据库模型类转换实体类的dbToPojoUtil工具类开发

    idea颜色说明http://blog.csdn.net/saindy5828/article/details/53319693 1,中途运用了properties,properties.getPro ...

  2. 精解Mat类(一):基本数据类型-固定大小的 矩阵类(Matx) 向量类(Vector)

    一.基础数据类型 1.(基础)固定大小矩阵类 matx 说明: ①    基础矩阵是我个人增加的描述,相对于Mat矩阵类(存储图像信息的大矩阵)而言. ②    固定大小矩阵类必须在编译期间就知晓其维 ...

  3. Convert between cv::Mat and QImage 两种图片类转换

    在使用Qt和OpenCV混合编程时,我们有时需要在两种图片类cv::Mat和QImage之间进行转换,下面的代码参考了网上这个帖子: //##### cv::Mat ---> QImage ## ...

  4. OpenCV图片类cv::Mat和QImage之间进行转换(好多相关文章)

    在使用Qt和OpenCV混合编程时,我们有时需要在两种图片类cv::Mat和QImage之间进行转换,下面的代码参考了网上这个帖子: //##### cv::Mat ---> QImage ## ...

  5. OPENCV mat类

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

  6. C++ Primer 学习笔记_63_重载运算符和转换 --转换和类类型【上】

    重载运算符和转换 --转换与类类型[上] 引言: 在前面我们提到过:能够用一个实參调用的位 unsignedchar 相同范围的值,即:0到255. 这个类能够捕获下溢和上溢错误,因此使用起来比内置u ...

  7. opencv中mat类介绍

    The class Mat represents an n-dimensional dense numerical single-channel or multi-channel array. It ...

  8. cout显示Mat类对象报错Access Violation

    AV(Access Violation)错误:非法访问. image_match.exe 中的 0x0000002a 处有未经处理的异常: 0xC0000005: Access violation 程 ...

  9. opencv使用日记之一:平台搭建Mat类以及图像的读取修改

    平台搭建就摸了一整天时间,真的是...不说了,最后我选择的是 opencv3.0(2015/06/04)  + win7 + vs2012   注意opencv的版本不同导入的库文件是不一样的,所以请 ...

随机推荐

  1. ORACLE 多表查询优化收集整理

    搞WEB的离不开数据库,在一个层面上,对数据库的熟练程度决定了很多的事情. 本文就大家都纠结的ORACLE多表查询的性能问题给出一系列个优化方法,那这些都是项目中长期用到的,所以很熟,很熟,已经成为习 ...

  2. [IOS][sqlite][SQL][数据库]SQL基本语句大全

    参考:http://www.cnblogs.com/yubinfeng/archive/2010/11/02/1867386.html 一.基础 1.说明:创建数据库CREATE DATABASE d ...

  3. viewpager实现画廊(一屏多个Fragment)效果

    本文主要介绍如何利用ViewPager实现Gallery的画廊效果,即一屏显示多个Fragment. 效果图如下: 在 使用Gallery的时候大家会发现有几个问题(1). 无法控制每次滑动只滑动一页 ...

  4. windows 网页打不开github网站

    gitbub是外网,经常会遇到访问不了的问题,并且有时能访问也网速好慢. 解决这个问题的方法是 更改hosts文件,地址:C:\Windows\System32\Drivers\etc 我在hosts ...

  5. shuoj 418 丢史蒂芬妮(素数筛+sg函数)

    丢史蒂芬妮 代码: #include<bits/stdc++.h> using namespace std; +; int SG[N][N]; bool S[N]; vector<i ...

  6. Analysis of single cell RNA-seq data(单细胞终极课程)

    业界良心啊,开源的单细胞课程. 随便看了几章,课程写得非常用心,非常适合新手. 课程地址:Analysis of single cell RNA-seq data 源码地址:hemberg-lab/s ...

  7. LeetCode--226--翻转二叉树

    问题描述: 翻转一棵二叉树. 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 备注: 这个问题是受到 Max Howel ...

  8. 1月4日编程基础hash

    早上git加星了webapp的教程 > h = Hash.new('Go Fishing')       => {}  // 创建一个空hash,设定"Go Fishing&qu ...

  9. 介绍 Jersey 依赖

    Jersey 使用 Apache Maven 进行构造和安装.非快照(Non-snapshot)Jersey 发行版本是不会部署到 中心 Maven 仓库(Central Maven Reposito ...

  10. tomcat8w.exe 运行 提示 指定的服务未安装 unable to open the service 'tomcat8'

    新下载的Tomcat8 解压版,解压缩完成后,双击tomcat8.exe出现个DOS样子的窗口一闪而过消失了,tomcat也没有启动成功.双击tomcat8w.exe 弹出个错误对话框,说“指定的服务 ...