转载自:https://blog.csdn.net/weixin_41706166/article/details/89923354

博主:素筒肠

来源:CSDN


1.Mat::row
功能: 创建一个指定行数的矩阵头并返回,新矩阵和原始矩阵共享一份基础数据函数原型

C++: Mat Mat::row(int i) const

参数
i: 需要选取的行索引

2.Mat::col
功能: (同上,改为列)

3.Mat::rowRange
功能: 创建一个指定行范围的矩阵头并返回,新矩阵和原始矩阵共享一份基础数据

C++: Mat Mat::rowRange(int startrow, int endrow) const
C++: Mat Mat::rowRange(const Range& r) const

参数
startrow : 一个包容性的0基(从0开始)的行span起始索引.。
endrow : 一个0基的独占性的行span.终止索引。
r : Range 结构包含着起始和终止的索引值。

4.Mat::colRange
功能: (同上,改为列)

5.Mat::diag
功能: 提取或创建矩阵对角线

C++: Mat Mat::diag(int d) const
C++: static Mat Mat::diag(const Mat& matD)

参数
d: 对角线的索引值,可以是以下的值:

  • d=0 是主对角线
  • d>0表示下半部的对角线。例如:d=1对角线是紧挨着住对角线并位于矩阵下方。
  • d<0表示来自矩阵上半部的对角线。例如:d= 1表示对角线被设置在对角线的上方并紧挨着。

matD: 单列用于形成矩阵对角线的列。
例:

Mat A = (Mat_<char>(4, 4) << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
Mat B = A.diag(1);
cout << A << endl;
cout << B << endl;


6.Mat::clone
功能: 创建一个数组及其基础数据的完整副本

C++: Mat Mat::clone() const

例:

Mat A = (Mat_<char>(4, 4) << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
Mat D = A.clone();
cout << A << endl;
cout << D << endl;


7.Mat::copyTo
功能: 和clone相似,将矩阵复制到另一个矩阵中去

C++: void Mat::copyTo(OutputArray m) const
C++: void Mat::copyTo(OutputArray m, InputArray mask) const

参数
m : 目标矩阵。如果它的尺寸和类型不正确,在操作之前会重新分配。
mask: 操作掩码。它的非零元素表示矩阵中某个要被复制。

  • PS:MASK表示位图,由0,1组成,选择哪个像素需要拷贝,哪个像素不需要拷贝)
  • PPS:这个函数与clone的区别在于,clone是直接进行复制,而copyTo则会先判定一下图像的size和要复制的Mat size是否一致,如果不一致会先声情空间再复制)

8.Mat::setTo
功能: 将阵列中所有的或部分的元素设置为指定的值

C++: Mat& Mat::setTo(const Scalar& s, InputArray mask=noArray())

参数
s : 把标量赋给阵列并转化到阵列的实际类型。
mask: 与 *this尺寸相同的操作掩码。把矩阵mask中元素不为0的点全部变为value值

9.Mat::reshape
功能: 改变Mat对象的形状或通道数

C++: Mat Mat::reshape(int cn, int rows=0) const

参数
cn: 新的通道数。若cn=0,那么通道数就保持不变。
rows : 新的行数。 若rows = 0, 那么行数保持不变。

10.Mat::t
功能: 矩阵转置

C++: MatExpr Mat::t() const

11.Mat::inv
功能: 求矩阵的逆

C++: MatExpr Mat::inv(int method=DECOMP_LU) const

12.Mat::mul
功能: 两个矩阵相乘

C++: MatExpr Mat::mul(InputArray m, double scale=1) const

参数
m: 与*this具有相同类型和大小的矩阵,或矩阵表达式。
scale : 可选缩放系数。

13.Mat::cross
功能: 矩阵叉乘

14.Mat::dot
功能: 矩阵点乘

OpenCV--Mat类相关操作相关推荐

  1. OpenCV | Mat类的copyT、clone、=赋值的区别

    OpenCV | Mat类的copyT.clone.=赋值的区别 1.clone 2.copyTo 3.等号'='赋值 4.验证 先说一下Mat类的结构. Mat类我们可以分成两部分:头部分.矩阵数据 ...

  2. OpenCV Mat类详解和用法(官网原文)

    参考文章:OpenCV Mat类详解和用法 我马克一下,日后更 官网原文链接:https://docs.opencv.org/3.2.0/d6/d6d/tutorial_mat_the_basic_i ...

  3. OpenCV Mat类详解和用法

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

  4. opencv Mat类

    本博客转载于这里! Mat 基础 图片在计算机中的本质就是一个数组.其中 Mat 就是在 OpenCV 中图像的表示形式,因此简单介绍 Mat 中一些常用的基础知识. 其中 Mat 类中有一些基本属性 ...

  5. OpenCV Mat类详解

    光心:每个透镜主轴上都有一个特殊点,凡是通过该点的光,其传播方向不变,这个点叫光心. 光线经过透镜后不会发生折射,仍然沿原方向射出. 基础矩阵(Fundamental matrix)是一个3×3的矩阵 ...

  6. OpenCV——Mat类的创建、复制、函数

    Mat类的创建: 方法一: 通过读入一张图像,直接转换为Mat对象 Mat image = imread("test.jpg"); 其中 imread()方法需要传入String类 ...

  7. java OpenCv Mat 类的基本操作(3)

    对初学者来说,我们总是希望通过Opencv实现一些功能,当我们去研究一个陌生的东西,我们总是想着利用他去实现某一个功能 比如Opencv,我们很容易利用他去进行人脸识别,人脸识别也有很多的方式比如利用 ...

  8. OpenCV Mat数据类型像素操作

    转自:http://blog.csdn.net/skeeee/article/details/13297457 OpenCV图像像素操作及效率分析 在计算机视觉应用中,对于图像内容的读取分析是第一步, ...

  9. 微软符号服务器opencv的符号,Opencv Mat类详解和用法1

    Mat OpenCV 自 2001 年出现以来.在那些日子里库是围绕C接口构建的.在那些日子里,他们使用名为IplImage C 的结构在内存中存储图像.这是您将在大多数较旧的教程和教材中看到的那个. ...

最新文章

  1. Spring MVC源码 - 00开篇主题框架一览
  2. 不想跑数了,数据分析师的前途在哪里?
  3. x299服务器芯片组,18核心炸裂!X299主板全集:为它真拼了
  4. XML序列化和反序列化 以及相关类的写法
  5. python保存图片_python保存网络图片问题
  6. Arduino文档阅读笔记-WeMos D1 ESP8266 WIFI开发板入门
  7. 2018第一场多校 -补题
  8. 无法找到脚本文件 C:/Windows/explorer.exe:574323188.vbs
  9. [导入]设置wap服务器
  10. Hyperion Essbase入门(五)SmartView
  11. 嵌入式linux学习笔记(2)
  12. Jlink 下安装JLINK驱动
  13. SpringBoot实现MySQL读写分离
  14. Leetcode刷题100天—剑指 Offer 50. 第一个只出现一次的字符(队列)—day13
  15. Unity资源加载之Assetbundle(一)
  16. datamodeler mysql_Navicat Data Modeler功能简介
  17. 机械祭天法力无边:练习3.6:编写一段程序,使用范围for语句将字符串内的所有字符用X代替。
  18. 什么是sku转载网上,备忘一个业务知识
  19. python发邮件详解,smtplib和email模块详解
  20. 波奇C语言模拟通讯录设计

热门文章

  1. Yarn 国内加速,修改镜像源
  2. Spring JDBC和JdbcTemplate CRUD与DataSource示例
  3. CodePush热更新组件详细接入教程
  4. 04737 c++程序设计 第二章 课后程序设计题 第一题
  5. C#LeetCode刷题之#28-实现strStr()(Implement strStr())
  6. 通用职责分配软件原则之1-信息专家原则
  7. azure考试_我如何通过AZ-900 Microsoft Azure基础考试
  8. 如何从0开始开源项目参与_如何开始一个开源项目
  9. 一年前端开发工程师简历_一年前,我开始学习编码,专注于前端开发。
  10. Python 最强编辑器PyCharm详细使用指南!