当前位置: 首页 > news >正文

opencv_c++学习(四)

图像在opencv中的存储方式

在这里插入图片描述
在上图中可以看出,在opencv中采用的是像素值来代表每一个像素三通道颜色的深浅。

Mat对象

Mat对象是在OpenCV2.0之后引进的图像数据结构、自动分配内存、不存在内存泄漏的问题,是面向对象的数据结构。分了两个部分,头部与数据部分。数据部分是像如int、double等数据类型的矩阵。
在这里插入图片描述
在这里插入图片描述
上图展示的是Mat中可以存储的数据类型格式,分别为:自定义类型、double、float、uchar、unsigned char。为了避免不同设备中的数据有效位数不同而造成相应的问题,opencv中规定了一系列数据类型:
在这里插入图片描述

Mat()
Mat (int rows, int cois, int type)
Mat (Size size, int type)
Mat (int rows, int cols, int type,const Scalar &s)
Mat (Size size. int type.const Scalar &s)
Mat (int ndims,const int "sizes, inistype)
Mat (int ndims,const int "sizes,int type.const Scalar &s)

针对Mat对象常用的方法:

void copyTo(Mat mat) //复制一个Mat对象
void convertTo(Mat dst, int type) //切换矩阵的数据类型
Mat clone() //复制一个Mat对象
int channels()
int depth()
bool empty(); //是否为空
uchar* ptr(i=0)

一、利用opencv创建一个图像

1、

det = Mat(src.size(), src.type(), Scalar(127, 0, 255));

这种方法适用定义一个与已知图像大小、数据类型一致的图像。代码含义为:定义一个det,该对象的尺寸大小、数据类型与src图像一直,并且将det的颜色填充为三通道数值为(127, 0, 255)的颜色
2、

det = Mat(Size(120,120), CV_16UC(3), Scalar(127, 0, 255));
//or
det = Mat(120,120, CV_16UC(3), Scalar(127, 0, 255));

这种方式可以自己定义图像的空间尺寸,数据类型,以及对应图像的通道数。代码含义为:定义一个det图像,该图像的空间大小为120*120,数据类型为CV_16U,通道数为3。且颜色填充为三通道数值为(127, 0, 255)的颜色。
3、

det = Mat(src, Range(2,150), Range(1,150));

这种方式可以截取已存在图像上指定的部分。代码含义为:将src图像上第3-149行,2-149列的数据截取下来。

二、Mat类赋值

在这里插入图片描述
具体样例如下:

det = Mat::eye(120, 120, CV_16UC(3));

枚举法赋值:

det = (Mat_<int>(3,3)<<1,2,3,4,5,6,7,8,9);

我们可以自己定义图像中每一个位置的像素值数值,如上图所示,我们可以定义一个int类型,空间大小为3*3,数值依次为1,2,3,4,5,6,7,8,9的数据。

http://www.lryc.cn/news/66342.html

相关文章:

  • 基于AT89C51单片机的篮球计时记分设计
  • 并发编程-Day2
  • 第1章 Nginx简介
  • 一个.Net功能强大、易于使用、跨平台开源可视化图表
  • 浅谈 ext2 文件系统的特点、优缺点以及使用场景
  • Map和Set数据结构和ES6模块化语法
  • 10_Uboot启动流程_2
  • python+django汽车4S店零配件保养服务管理系统
  • STM32F4的输出比较极性和PWM1,PWM2的关系
  • 易优cms伪静态,EyouCms去除URL中的index.php
  • 【自然语言处理】【大模型】CodeGeeX:用于代码生成的多语言预训练模型
  • Open3D 非线性最小二乘拟合二维多项式曲线
  • kafka消息队列的两种模式
  • python语法复习
  • 02-Java基础编程
  • 武忠祥老师每日一题||定积分基础训练(十)
  • C/C++趣味程序设计百例(41~50)
  • 论文阅读-2-DeepSMOTE Fusing Deep Learning and SMOTE for Imbalanced Data
  • 三种方法教你让模糊照片秒变高清图
  • PyTorch深度学习实战 | 基于线性回归、决策树和SVM进行鸢尾花分类
  • 服务端接口优化方案
  • 【并发基础】Happens-Before模型详解
  • Kubernetes系列---Kubernetes 理论知识 | 初识
  • KingbaseES 原生XML系列三--XML数据查询函数
  • 【51单片机】点亮一个LED灯(看开发板原理图十分重要)
  • 数据可视化工具 - ECharts以及柱状图的编写
  • 【AI绘画】——Midjourney关键词格式解析(常用参数分享)
  • 操作符知识点大全(简洁,全面,含使用场景,演示,代码)
  • 华工研究生语音课
  • KingbaseES 原生XML系列二 -- XML数据操作函数