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);


比如说,我要创建纯白色图:

Img = cv::Mat(cDepthHeight,cDepthWidth,CV_8UC3,cvScalar(255,255,255,255));
Img.setTo(255);

我要创建纯黑色图,opencv默认黑色:

Img.create(cDepthHeight, cDepthWidth, CV_8UC3);
Img.setTo(0);

参考博客:https://www.cnblogs.com/long5683/p/9693014.html

Opencv创建纯色图相关推荐

  1. 用opencv-python建立纯色图

    用opencv-python建立纯色图 方法一 方法二 方法一 可以创建任何颜色的图 import numpy as np import cv2 as cvimg1 = np.zeros((300,5 ...

  2. Python+OpenCV创建级联文件(Windows7/10环境)

    目录 1.搭建环境 2.准备数据集 3.训练级联文件 之前使用Python+OpenCV实现交通路标识别,具体实现步骤及心得如下: OpenCV训练属于自己的xml文件,需以下几个步骤: 1.首先下载 ...

  3. 【Qt】在Qt中使用opencv,不要使用opencv创建窗口

    问题描述 在ubuntu14.04.5 Qt5.6中使用opencv创建窗口显示摄像头时,报错: (:1103): Gtk-WARNING **: gtk_disable_setlocale() mu ...

  4. OpenCV之highgui 模块. 高层GUI和媒体I/O: 为程序界面添加滑动条 OpenCV的视频输入和相似度测量 用OpenCV创建视频

    为程序界面添加滑动条 在以前的教程中 (例如 linear blending 和 brightness and contrast adjustments)你有可能注意到需要 input 一些数值到我们 ...

  5. OpenCV创建3D直方图

    OpenCV创建3D直方图 创建3D直方图 目标 代码 解释 结果 创建3D直方图 目标 在本教程中,您将学习如何 为可视窗口创建自己的回调键盘功能. 在可视窗口中显示3D直方图. 代码 #inclu ...

  6. OpenCV创建小部件Creating Widgets

    OpenCV创建小部件 创建小部件 目标 代码 解释 结果 创建小部件 目标 在本教程中,您将学习如何 使用WidgetAccessor和VTK创建自己的窗口小部件. 在可视化窗口中显示您的窗口小部件 ...

  7. OpenCV创建自己的corner检测器

    OpenCV创建自己的corner检测器 创建自己的corner检测器 目标 代码 结果 创建自己的corner检测器 目标 在本教程中,您将学习如何: 使用OpenCV函数cv :: cornerE ...

  8. OpenCV创建校准图案calibration pattern

    创建校准图案calibration pattern OpenCV创建校准图案calibration pattern 创建自己的图案 OpenCV创建校准图案calibration pattern 创建 ...

  9. 使用OpenCV创建视频

    使用OpenCV创建视频 使用OpenCV创建视频 目标 源代码 影片的结构 VideoWriter类 使用OpenCV创建视频 目标 每当您使用视频供稿时,您最终都可能希望将图像处理结果以新的视频文 ...

  10. opencv 创建图像_非艺术家的图像创建(OpenCV项目演练)

    opencv 创建图像 This project stemmed from my predilection of the visual arts - as a computing student, I ...

最新文章

  1. python 词云手把手_手把手教你生成炫酷的词云
  2. 计算机视觉行业迎来大发展,多角度解读未来前景
  3. 抽象类 VS 接口 (3)
  4. idea servlet自动配置web.xml_Spring Boot学习04_嵌入式Servlet容器自动配置原理
  5. 不允许使用不完整的类型_河南:限速标志不达标,坚决不允许通车!
  6. java 21-13 合并
  7. 【开发者成长】5 分钟搞定 Linux 正则表达式
  8. CentOS 系统盘迁移
  9. 白话学习MVC(七)Action的执行一
  10. 多线程Thread中常用方法,优先级的使用
  11. 三十万,买一只基金,放着不管,五年后会怎么样?
  12. 女孩子偷偷学好软件测试,想要年薪30w也没有很难!
  13. 3.5 RNN 字符级语言模型
  14. QCC512x QCC302x Earbud 工程增加三击事件
  15. mysql执行sql流程_mysql 执行sql流程
  16. JavaScript 图像对象
  17. 华为网页手机云服务器,华为Cloud 云服务
  18. 持安科技孙维伯:实战零信任最佳实践
  19. vue框架中使用高德地图自定义icon问题
  20. next. js_Next.js添加到您的应用程序中的图标

热门文章

  1. C++如何优雅地释放资源
  2. 简单实用的电脑桌面待办清单应用
  3. 用python进行数据分析(一:数据理解)
  4. winxp找不到服务器或 dns 错误,详解网络无法使用DNS错误的修复步骤
  5. 使用diskpart命令修复损坏的U盘
  6. 金山wps c++开发一面总结
  7. 区块链:从理论走向实践--高盛公司(Glodman Sachs)发布过的报告
  8. 关于勾股数的规律及证明
  9. vios接口虚拟服务器,虚拟VIOS服务器安装手册V1.0
  10. 06.变革、变革、再变革