Opencv(四)Mat类的赋值

这篇具有很好参考价值的文章主要介绍了Opencv(四)Mat类的赋值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、构造时赋值

cv::Mat::Mat( int rows,
              int cols,
              int type,
              const Scalar & s
            )

rows : 矩阵的行数
cols : 矩阵的列数
type : 存储数据的类型
s    : 给矩阵中每个像素赋值的参数变量,例如Scalar(0, 0, 255)
例:
cv::Mat a(2, 2, CV_8UC3, cv::Scalar(0,0,255));//创建一个3通道矩阵,每个像素都是0,0,255

cv::Mat b(2, 2, CV_8UC2, cv::Scalar(0,255));//创建一个2通道矩阵,每个像素都是0,255

cv::Mat c(2, 2, CV_8UC1, cv::Scalar(255)); //创建一个单通道矩阵,每个像素都是255

2、枚举赋值法

将矩阵中所有的元素都一一枚举出,并用数据流的形式赋值给Mat类

cv::Mat a = (cv::Mat_<int>(3, 3) << 1, 2, 3, 4, 5, 6, 7, 8, 9);

cv::Mat b = (cv::Mat_<double>(2, 3) << 1.0, 2.0, 3.0, 4.0, 5.0, 6.0);

第一行代码创建了一个3×3的矩阵,矩阵中存放的是从1-9的九个整数,先将矩阵中的第一行存满,之后再存入第二行、第三行,即1、2、3存放在矩阵a的第一行,4、5、6存放在矩阵a的第二行,7,8,9存放在矩阵a的第三行。第二行代码的存放方式与第一行代码相同。

3、循环赋值法

cv::Mat c = cv::Mat_<int>(3, 3); //定义一个3*3的矩阵

for (int i = 0; i < c.rows; i++) //矩阵行数循环

{

for (int j = 0; j < c.cols; j++) //矩阵列数循环

{

c.at<int>(i, j) = i+j;

}

}

创建了一个3×3的矩阵,通过for循环的方式,对矩阵中的每一位元素进行赋值。

注意:第一行代码与第六行代码的变量类型要相同。

4、数组赋值法

将需要存入到Mat类中的变量存入到一个数组中,之后通过设置Mat类矩阵的尺寸和通道数将数组变量拆分成矩阵。文章来源地址https://www.toymoban.com/news/detail-768545.html

float a[8] = { 5,6,7,8,1,2,3,4 };

cv::Mat b = cv::Mat(2, 2, CV_32FC2, a);

cv::Mat c = cv::Mat(2, 4, CV_32FC1, a);

到了这里,关于Opencv(四)Mat类的赋值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C# - Opencv应用(2) 之矩阵Mat使用[矩阵创建、图像显示、像素读取与赋值]

    C# - Opencv应用(2) 之矩阵Mat使用[矩阵创建、图像显示、像素读取与赋值] 矩阵创建 图像显示与保存 像素读取与赋值 新建sample02项目,配置opencv4相关包,新建 .cs 进行测试 两种常用的图像遍历方式 灰度图操作 三通道图操作 完整代码

    2024年02月03日
    浏览(48)
  • 【OpenCV】 基础入门(一)初识 Mat 类 | 通过 Mat 类显示图像

    🚀 个人简介:CSDN「 博客新星 」TOP 10 , C/C++ 领域新星创作者 💟 作    者: 锡兰_CC ❣️ 📝 专    栏: 【OpenCV • c++】计算机视觉 🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪

    2024年04月16日
    浏览(34)
  • <OpenCV> Mat属性

    OpenCV的图像数据类型可参考之前的博客:https://blog.csdn.net/thisiszdy/article/details/120238017 OpenCV-Mat类型的部分属性如下: size:矩阵的大小, s i z e ( c o l s , r o w s ) size(cols,rows) s i ze ( co l s , ro w s ) ; elemSize():矩阵一个元素占用的字节数( 通道数 ∗ 位数 / 8 通道数*位数/8 通道数

    2024年02月09日
    浏览(40)
  • 【OpenCV】浅谈 Mat 类

    1、Mat类介绍 Mat 类是一个用于保存图像数据或者矩阵数据的数据结构,可以说是一个矩阵类, 在OpenCV 1.0时代,存储图像数据都是使用C语言中的一个结构体IplImage,很麻烦的是IplImage需要在程序结束的时候手动释放内存,就跟我们现在malloc过来的堆区空间一样。 不过随着Open

    2024年02月09日
    浏览(35)
  • Opencv::Mat的学习

    OpenCV中6种访问Mat元素的方法_opencv 访问mat元素_JIN_嫣熙的博客-CSDN博客

    2024年02月11日
    浏览(45)
  • OpenCV(Mat类)

    目录 1、什么是Mat类 2、Mat类组成  3、Mat类能存储的数据类型  4.Mat类的创建 4.1 利用矩阵宽、高和类型参数创建  4.2 利用矩阵Size()结构和数据类型参数来创建 4.3 利用已有Mat类来创建  5、Mat类的赋值 5.1 创建时赋值 5.2 类方法赋值 5.3 枚举赋值  6、Mat类数据的读取 6.1 Mat类的常

    2024年02月12日
    浏览(37)
  • opencv Mat详解

    我们有多种方法从现实世界获取数字图像:数码相机、扫描仪、计算机断层扫描和磁共振成像等。在任何情况下,人类看到的都是图像。当将其转换为数字图像在设备中进行存储时,我们记录的是图像中每个点的数值。 例如,在上面的图像中,可以看到汽车的镜子只是一个包

    2024年02月07日
    浏览(38)
  • OpenCV Mat类

    设为A,B为Mat类型,s是Scalar类型,a是一个实数。下面列出关于Mat的常用运算: OpenCV是一个广泛使用的计算机视觉库,它提供了许多用于图像处理和计算机视觉任务的函数和工具。在OpenCV中,Mat是一个重要的数据结构,用于表示图像和矩阵。Mat类提供了一种方便的方式来处理

    2024年02月09日
    浏览(37)
  • OpenCV 3 - Mat对象介绍

    Mat对象OpenCV2.0之后引进的图像数据结构、 自动分配内存、不存在内存泄漏的问题 ,是面向对象的数据结构。分了两个部分, 头部 与 数据部分 lpllmage是从2001年OpenCv发布之后就一直存在,是c语言风格的数据结构,需要开发者自己分配与管理内存, 对大的程序使用它容易导致

    2024年02月19日
    浏览(37)
  • Opencv的Mat内容学习

    来源: Opencv的Mat内容小记 - 知乎 (zhihu.com) 1.Mat 是一种图像容器,是二维向量。 灰度图的Mat一般存放uchar类型 RGB 彩色图像一般存放Vec3b类型。 (1) 单通道灰度图数据存放样式:   (2)RGB 三通道彩色图存放形式不同,每列并列存放通道数据的子列(顺序:BGR)   OpenCV学习笔记:Ma

    2024年02月15日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包