OpenCV——Mat类的创建、复制、函数
Mat类的创建:
方法一:
通过读入一张图像,直接转换为Mat对象
Mat image = imread("test.jpg");
其中 imread()方法需要传入String类型的值,一般都是图像文件路径。
方法二:
使用无参数构造函数,创建Mat对象
Mat image = Mat();
image.create(4, 4, CV_8UC3);
此刻表示创建一个4x4大小的像素块,每个像素都是三通道每个通道的位数都是8位,一个字节的。上述CV_8UC3中的8表示8位、UC表示uchar类型、3表示三个通道。
方法三:
使用行、列、类型带这个三个参数的构造函数创建Mat对象
Mat m = Mat(4, 4, CV_8UC3)
表示创建一个跟方法二一样的像素块
方法四:
使用行、列、类型、Scalar向量四个参数的构造函数创建Mat对象
Mat m = Mat(4, 4, CV_8UC3, Scalar(0, 255, 255);
同样表示创建一个4x4的像素块,唯一不一样的是颜色不是默认值而是我们指定的三通道颜色值向量Scalar(0, 255, 255)。其中Scalar向量数目永远是等于通道数目
方法五:
使用大小、类型两个参数的构造函数创建Mat对象
Mat m = Mat(Size(4, 4), CV_8UC3);
同样创建一个4x4的每个通道8位三个通道的像素块
方法六:
使用大小、类型、Scalar向量三个参数的构造函数创建Mat对象
Mat m = Mat(Size(4, 4), CV_8UC3, Scalar(255, 0, 0));
同样创建一个4x4的每个通道8位三个通道的像素块
方法七:
使用Mat::zeros函数实现,两个参数一个是Size表示图像宽与高
另外一个表示类型:
Mat m = Mat::zeros(Size(4,4), CV_8UC3);
同样创建一个4x4的每个通道8位三个通道的像素块
方法八:
使用Mat::ones函数实现,两个参数一个是Size表示图像宽与高,
另外一个表示类型
Mat m = Mat::ones(Size(4,4), CV_8UC1);
同样创建一个4x4的每个通道8位一个通道的像素块
注意这次类型是CV_8UC1表示创建的是一个通道类型数据。
Mat类的复制:
方法一:
Mat m2;
Mat m1 = imread("test.jpg");
m2 = m1;
方法二:
Mat m1 = imread("test.jpg");
Mat m2(m1);
通过上述两种方法Mat对象只会复制头部分和指向像素数据的指针,不会真正复制数据部分。通过如下方法Mat可以实现数据对象的完全复制
方法三:
Mat src = imread("test.jpg");
Mat dst = src.clone();
方法四:
Mat src = imread("test.jpg");
Mat dst;
src.copyTo(dst);
转载于:https://www.cnblogs.com/long5683/p/9693014.html
OpenCV——Mat类的创建、复制、函数相关推荐
- OpenCV Mat类详解和用法(官网原文)
参考文章:OpenCV Mat类详解和用法 我马克一下,日后更 官网原文链接:https://docs.opencv.org/3.2.0/d6/d6d/tutorial_mat_the_basic_i ...
- OpenCV Mat类详解和用法
OpenCV Mat类详解和用法 我们有多种方法可以获得从现实世界的数字图像:数码相机.扫描仪.计算机体层摄影或磁共振成像就是其中的几种.在每种情况下我们(人类)看到了什么是图像.但是,转换图像到我们 ...
- OpenCV4每日一练day4:Mat类的创建、赋值、读取
一.了解Mat类 二.三种常用Mat类的创建方式: 创建Mat类的rows和cols参数是从1开始数 Mat.rowRange(int x,int y)和Mat.rowRange(range(int ...
- OpenCV | Mat类的copyT、clone、=赋值的区别
OpenCV | Mat类的copyT.clone.=赋值的区别 1.clone 2.copyTo 3.等号'='赋值 4.验证 先说一下Mat类的结构. Mat类我们可以分成两部分:头部分.矩阵数据 ...
- 创建图片mat_OPENCV(二)——Mat类与几个函数的简介
一,opencv的命名空间 写简单的opencv程序时,以下三个语句可以说是标配: #include<opencv2/core/core.hpp> #include<opencv2/ ...
- OpenCV Mat类详解
光心:每个透镜主轴上都有一个特殊点,凡是通过该点的光,其传播方向不变,这个点叫光心. 光线经过透镜后不会发生折射,仍然沿原方向射出. 基础矩阵(Fundamental matrix)是一个3×3的矩阵 ...
- opencv Mat类
本博客转载于这里! Mat 基础 图片在计算机中的本质就是一个数组.其中 Mat 就是在 OpenCV 中图像的表示形式,因此简单介绍 Mat 中一些常用的基础知识. 其中 Mat 类中有一些基本属性 ...
- OpenCv Mat -类 成员函数
先从最简单的学起来 1.mat.cols() mat 矩阵的列数,和矩阵的通道数无关 new Mat(10,20,CvType.CV_8UC2) mat.cols==20 2.mat.row ...
- opencv Mat类赋值函数copyTo、clone的区别
被赋值Mat之前已经被分配足够空间时,copyTo()不重新给分配空间,继续使用之前的空间,当已分配空间不足时,则会重新分配空间:clone()则均重新分配空间. Mat M(1, 3, CV_8UC ...
最新文章
- 用TCP/IP进行网际互联一
- [灵魂拷问]MySQL面试高频100问(工程师方向)
- 最全知识点总结!| 大数据学习路线指南
- linux火狐自动更新,CentOS 7手动更新firefox | Linux系统运维联盟
- 答题获得思科T-shirt
- flex 只有仅限于文件系统的 SWF 文件和可信的本地 SWF 文件可以访问本地资源
- php使用RabbitMQ
- Boost 连接库的命名含义
- php 微信表情存储,emoji表情存储到数据库的方法
- 前端人脸识别--两张脸相似度
- 大学英语四六级往年成绩查询+成绩单补办教程(四级/六级/4级/6级/46级)
- DNS劫持原理,DNS劫持如何解决?
- 乱码html文档怎么恢复,乱码word文档怎么恢复
- RISC-V向量扩展指令(一)
- 基于Springboot健身会员俱乐部管理系统设计
- 液晶屏背光源该如何检测?
- CSUST 2007-我爱吃烧烤(状压DP)
- java正则中REGEX = [\u4e00-\u9fa5]+是什么意思
- Rip与不连续子网拓扑(小白基础实验)
- Windows 10安装配置Theano(转载)
热门文章
- 【Unity】关于屏幕自适应的思路
- 状态模式(State Pattern)
- [转]Eclipse+pydev 常用快捷键
- Mr.J-- jQuery学习笔记(十六)--展开和收起动画折叠菜单的实现
- Leetcode-5148 Binary Tree Coloring Game(二叉树着色游戏)
- centos yum方式安装nginx 并支持https
- 【XSY2519】神经元 prufer序列 DP
- linux常用的BootLoader U-boot的前世今生
- IntelliJ IDEA导入Maven之后强制刷新项目解决无法识别为Maven项目的问题
- CoreAnimation汇总