这几天用到了由cv::Point3f和std::vector到cv::Mat数据类型的转换。本质上就是换一下容器。今晚做个小总结。

由Point3f 到 Mat

有两种方法,一种使用cv::Mat_<:point3f>(),另一种是在声明时使用{}初始化。注意:第一种方法得到的Mat的数据类型的通道数不为1,需要使用reshape()函数,第二种方式得到的通道数为1。

由vector 到 Mat

比较简单的方法是在Mat声明时,使用{}初始化。或者使用cv::Mat(std::vector)进行赋值也可以。比较省心的是,OpenCV根据vector数据中的类型自动选择通道数与数据类型。

若为uchar, float, double, 则通道数则为1, 若为cv::Point2f, cv::Point3f,则通道数则为2, 3。

#include

#include

#include

int main()

{

//

// cv::Point --> cv::Mat 可以使用cv::Mat_<:point3f>, 或初始化时{}赋值

// vector --> cv:Mat 可以使用{}赋值

cv::Point3f v1(34.0f, 21.34f, 32.0f);

// 1. cv::Mat_<:point3f>

// 三种赋值方式可以实现由Point3f到Mat的转换, 但是通道数不是1

//cv::Mat m1 = cv::Mat_<:point3f>(v1);

cv::Mat m1{ cv::Mat_<:point3f>(v1) };

//cv::Mat_<

c++ mat赋值_Mat 的几种初始化和赋值方法相关推荐

  1. Qt之两种初始化QListWidget的方法

    2019独角兽企业重金招聘Python工程师标准>>> #include "widget.h" #include <QApplication> #in ...

  2. 列表初始化和赋值初始化的使用注意事项

    成员变量初始化方式有两种:列表初始化和赋值初始化.如下代码.但是这两种初始化表面上看着相同,但是用法和原理却并不相同.本篇博客主要讨论这两种初始化的使用方法和基本原理. class Test {pub ...

  3. 《C++ Primer 第五版》第二章(1-4小节)------基本内置类型,初始化和赋值及声明和定义,指针和引用,const和constexpr

    C++ Primer第二章的内容主要介绍了变量和基础类型,包括C++语言定义的基础内置类型.变量的定义及声明.符合类型如指针及引用的介绍和const及常量表达式constexpr的介绍,本次博客也从这 ...

  4. C++/C--vector初始化与赋值【转载】

    1. 一维情况 (1)不带参数的构造函数初始化 //初始化一个size为0的vector vector<int> a; (2)带参数的构造函数初始化 //初始化size,但每个元素值为默认 ...

  5. 字符串指针的定义、初始化与赋值

    指针的定义.初始化与赋值 指针的定义.初始化与赋值 char * 和 const char * 用字符串常量给指针和数组赋值 数组和指针表示字符串的异同 同: 不同: 留待解决的问题: 指针的定义.初 ...

  6. c++构造函数成员初始化中赋值和初始化列表两种方式的区别

    先总结下: 由于类成员初始化总在构造函数执行之前 1)从必要性: a. 成员是类或结构,且构造函数带参数:成员初始化时无法调用缺省(无参)构造函数 b. 成员是常量或引用:成员无法赋值,只能被初始化 ...

  7. C语言--关于指针两种初始化赋值操作

    首先,什么叫做指针的初始化?  int * p = NULL:在定义指针变量p的同时把p的值设置为0x00000000;而不是把*p的值设置为0x00000000.这个过程叫做初始化. 探讨: int ...

  8. C++知识点19——使用C++标准库(再谈string——string的初始化、赋值、添加、删除、访问)

    1.string的构造函数 string();//默认构造函数,默认初始化时调用 string (const string& str);//拷贝构造函数,拷贝初始化时调用 string (si ...

  9. 【C 语言】指针间接赋值 ( 间接赋值三要素 | 间接赋值 使用的三种场景 )

    文章目录 一.间接赋值三要素 二.间接赋值 使用场景 1.① ② ③ 都在同一个函数中 2.① ② 在一个函数中 ③ 在另一个函数中 一.间接赋值三要素 三要素总结 : ① 定义实参和形参 ; ② 实 ...

最新文章

  1. 用python做炒股软件-同花顺有python接口_基于python的炒股软件
  2. PCB板查短路点的一种技巧 (转载)
  3. Servlet的体系结构 || Servlet相关配置
  4. iOS - 解决设置导航栏按钮图片变色的问题
  5. linux内核工程师必须知道的三十道题
  6. vue中v-show指令的使用之Vue知识点归纳(五)
  7. C++字符串的不同存放类型 (string/char[])
  8. Chika and Friendly Pairs(莫队+树状数组+离散化+预处理上下界)
  9. 《转》解决struts2在(IE,Firefox)下载文件名乱码问题。
  10. 九宫格日记:微博难越,前路漫漫
  11. Axure RP 8的用途和使用
  12. 增加客流量的方法_如何增加博客流量-简单的方法(27条可靠的技巧)
  13. 2019年java程序员推荐笔记本_2020程序员笔记本推荐?
  14. 生活不可能像你想的那么好,但也不会像你想的那么糟
  15. Swagger如何屏蔽某些接口显示
  16. python报错:使用lgb过程中报错:DataFrame.dtypes for data must be int, float or bool
  17. 什么时候建立数据库,怎么建立数据库?
  18. linux 把数字变字符串,C语言中将数字转换为字符串的方法
  19. [ hadoop ] hadoop入门 : 组成架构.环境搭建.运行模式
  20. 云村,网易云音乐的扛把子?

热门文章

  1. 用C/C++写CGI程序
  2. 单元测试总结反思_我的2019反思与总结
  3. 哪款浏览器好用_超级实用!让你效率倍增的6款浏览器插件
  4. 世界第一台电脑_阿里推出云电脑“无影”,名片大小的机身,却有无穷的计算能力...
  5. 【写作技巧】毕业论文的目录和正文有什么讲究?
  6. 学C语言开发能实现月薪12K吗?
  7. centos使用python_Centos7使用Python3
  8. 全栈性能测试修炼宝典jmeter实战电子版_JMeter实战(一) 体系结构
  9. leaflet调用mysql_PHP和MySQL以及Leaflet API
  10. 50欧姆线设计 高频pcb_高频电路布线的应对方法有哪些?