OpenCVMat的基本用法:创建、复制

一、Mat类的创建:

1.方法一:

通过读入一张图像,直接将其转换成Mat对象。

 Mat image = imread("test.jpg");

 Mat image = imread("F:\\test.jpg");

其中,imread()方法需要传入String类型的值,一般都是图像文件路径。

注意:图像文件路径中需要两个“\”,要不然会报错。

2.方法二:

使用无参数构造函数,创建Mat对象。

 Mat image = Mat();
image.create(, , CV_8UC3);//创建一个4x4大小的像素块,每个像素都是三通道每个通道的位数都是8位

上述CV_8UC3中的8表示8位,UC表示uchar类型,3表示三个通道。

3.方法三:

使用带行、列、类型这个三个参数的构造函数创建Mat对象。

 Mat m = Mat(, , CV_8UC3); //创建一个4x4大小的像素块,每个像素都是三通道每个通道的位数都是8位

与方法二创建的像素块一样。

4.方法四:

使用行、列、类型、Scalar向量四个参数的构造函数创建Mat对象。

 Mat m = Mat(, , CV_8UC3, Scalar(, , );
//创建一个4x4大小的像素块,每个像素都是三通道每个通道的位数都是8位,指定三通道颜色值向量Scalar(0, 255, 255)

同样表示创建一个4x4的像素块,唯一的区别是颜色不是默认值,而是我们指定的三通道颜色值向量Scalar(0, 255, 255)。其中Scalar向量数目永远是等于通道数目。

5.方法五:

使用大小、类型两个参数的构造函数创建Mat对象。

 Mat m = Mat(Size(, ), CV_8UC3); //创建一个4x4大小的像素块,每个像素都是三通道每个通道的位数都是8位

6.方法六:

使用大小、类型、Scalar向量三个参数的构造函数创建Mat对象。

 Mat m = Mat(Size(, ), CV_8UC3, Scalar(, , )); //创建一个4x4大小的像素块,每个像素都是三通道每个通道的位数都是8位

7.方法七:

使用Mat::zeros函数实现,两个参数的含义:Size表示图像宽与高,另外一个表示类型。

 Mat m = Mat::zeros(Size(,), CV_8UC3); //创建一个4x4大小的像素块,每个像素都是三通道每个通道的位数都是8位

8.方法八:

使用Mat::ones函数实现,两个参数的含义:Size表示图像宽与高,另外一个表示类型。

 Mat m = Mat::ones(Size(,), CV_8UC1); //创建一个4x4大小的像素块,每个像素都是三通道每个通道的位数都是8位

注意:这次类型是CV_8UC1表示创建的是一个通道类型数据。

 二、Mat类的复制:

1.方法一:

 Mat m2;
Mat m1 = imread("test.jpg");
m2 = m1;

2.方法二:

 Mat m1 = imread("test.jpg");
Mat m2(m1);

3.方法三:

 Mat src = imread("test.jpg");
Mat dst = src.clone();

4.方法四:

 Mat src = imread("test.jpg");
Mat dst;
src.copyTo(dst);

特别注意:方法一与方法二的Mat对象只会复制头部分和指向像素数据的指针,不会真正复制数据部分。方法三与方法四的Mat可以实现数据对象的完全复制。

OpenCV中Mat的基本用法:创建、复制的更多相关文章

  1. opencv中mat类介绍

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

  2. OpenCV中Mat操作clone() 与copyto()的区别

    OpenCV中Mat操作clone() 与copyto()的区别 // Mat is basically a class with two data parts: the matrix header ...

  3. OpenCV中Mat的列向量归一化

    OpenCV中Mat的列向量归一化 http://blog.csdn.net/shaoxiaohu1/article/details/8287528 OpenCV中Mat的列向量归一化 标签: Ope ...

  4. Opencv中Mat矩阵相乘——点乘、dot、mul运算详解

    Opencv中Mat矩阵相乘——点乘.dot.mul运算详解 2016年09月02日 00:00:36 -牧野- 阅读数:59593 标签: Opencv矩阵相乘点乘dotmul 更多 个人分类: O ...

  5. OpenCV中Mat的属性

    OpenCV中Mat的属性 最近在做一OpenCV的图像轮廓检验,但当用到霍夫变换时才发现对Mat的属性了解不足.Mat在OpenCV中的地位是及其重要的,因此有必要做一个总结. 大体上来说,Mat是 ...

  6. OpenCV中Mat的详解

    每次碰到Mat都得反复查具体的用法,网上的基础讲解不多,难得看到一篇,赶快转来收藏~ 原文地址:http://www.opencvchina.com/thread-1039-1-1.html 目标 我 ...

  7. opencv中Mat与IplImage,CVMat类型之间转换

    opencv中对图像的处理是最基本的操作,一般的图像类型为IplImage类型,但是当我们对图像进行处理的时候,多数都是对像素矩阵进行处理,所以这三个类型之间的转换会对我们的工作带来便利. Mat类型 ...

  8. opencv中Mat类型数据操作与遍历

    Mat作为opencv中一种数据类型常常用来存储图像,相对与以前的IplImgae类型来说,Mat类型省去了人工的对内存的分配与释放,转而自动分配释放.Mat Class主要包括两部个数据部分:一个是 ...

  9. OpenCV中Mat总结

    一.数字图像存储概述 数字图像存储时,我们存储的是图像每个像素点的数值,对应的是一个数字矩阵. 二.Mat的存储 1.OpenCV1基于C接口定义的图像存储格式IplImage*,直接暴露内存,如果忘 ...

随机推荐

  1. AngularJs 中ngModel绑定HTML5 date数据同步问题

    以下代码例子中,直接将date类型的input标签与ng-model对应的变量绑定,会出现内存数据和页面数据不一致的问题.虽然AngularJS是双向数据绑定,但是如果用下面的方法,在页面更新date ...

  2. Redis实现分布式读写锁(Java基于Lua实现)

    https://blog.csdn.net/grandachn/article/details/89032815 https://blog.csdn.net/xingsilong/article/de ...

  3. 吴裕雄 python 神经网络——TensorFlow 卷积神经网络手写数字图片识别

    import os import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data INPUT_N ...

  4. 三、RabbitMQ安装

    安装前准备 Linux版本信息: 发行版本:CentOS Linux release 7.5.1804 (Core) 内核版本:Linux version 3.10.0-862.el7.x86_64 ...

  5. 荼菜的iOS笔记--UIView的几个Block动画

    前言:我的第一篇文章荼菜的iOS笔记–Core Animation 核心动画算是比较详细讲了核心动画的用法,但是如你上篇看到的,有时我们只是想实现一些很小的动画,这时再用coreAnimation就会 ...

  6. mvn相关介绍和命令

    1.前言 Maven,发音是[`meivin],"专家"的意思.它是一个很好的项目管理工具,很早就进入了我的必备工具行列,但是这次为了把project1项目完全迁移并应用maven ...

  7. spring 任务调度quartz

    简单记录一下spring任务调度quartz的例子 首先添加包 quartz-2.2.3.jar 然后写个简单的TestJob类 package com.job; import java.util.D ...

  8. spring提供的事务配置--纯注解

    spring提供的事务--纯注解 模拟转账业务  ,出错需要事务回滚,没错正常执行 事务和数据库技术都是spring的内置提供的 --------dao包--------------- IAccoun ...

  9. hexo NexT主题首页title链接的优化

    在默认设置下,文章链接都会改变,不利于搜索引擎收录,也不利于分享 更改index.swig文件 文件路径是your-hexo-sitethemesnextlayout,将下面代码 1 {% block ...

  10. 三星HTC价格跳水 安卓旗舰会否崩塌?

    安卓旗舰会否崩塌?" title="三星HTC价格跳水 安卓旗舰会否崩塌?"> 官方降价,对于国产手机来说似乎是家常便饭.小米.魅族等,总会时隔几个月就将自家旗舰机 ...