码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • OpenCV_Mat类对象常用的构造方法及初始化方法


    OpenCV_Mat类对象常用的构造方法及初始化方法

    说明:本文提供的示例代码请到页面 https://www.hhai.cc/thread-71-1-1.html 查看。

    OpenCV_Mat类对象常用的构造方法及初始化方法如下:

    目录

    • 01-Mat::Mat()
    • 02-Mat::Mat(int rows, int cols, int type)
    • 03-Mat::Mat(Size size, int type)
    • 04-Mat::Mat(int rows, int cols, int type, const Scalar& s)
    • 05-Mat::Mat(Size size, int type, const Scalar& s)
    • 06-Mat::Mat(const Mat& m)
    • 07-初始化一个所有元素值都为零的矩阵
    • 08-初始化一个所有元素值都为1的矩阵
    • 09-初始化一个单位矩阵(对角线元素为1)
    • 10-初始化矩阵的每一个元素为不同的任意值(利用重载运算符<<)
    • 11-通过别的Mat对象的属性值创建一个新的Mat对象
    • 12-复制别的Mat对象的某个区域形成新的Mat对象

    01-Mat::Mat()

    无参数的构造方法

    02-Mat::Mat(int rows, int cols, int type)

    创建行数为rows,列数为cols,类型为type的图像。
    关于参数type的可取值及意义,可参见页面 https://www.hhai.cc/thread-72-1-1.html

    03-Mat::Mat(Size size, int type)

    创建大小为size,类型为type的图像。

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

    创建行数为rows,列数为cols,类型为type的图像,并将所有元素初始化为s。

    05-Mat::Mat(Size size, int type, const Scalar& s)

    创建大小为size,类型为type的图像,并将所有元素初始化为s。

    06-Mat::Mat(const Mat& m)

    将对象m赋值给新创建的对象,此时不会对图像数据进行复制,对象m和新对象共用图像数据。

    以上六种构造方法的示例代码请看本篇博文开头的说明。
    示例代码运行结果如下图所示:
    请添加图片描述
    从上面的运行结果我们可以看出,Mat对象的数据如果没有指定初始值,那么其值为205,注意不是255。
    要特别注意的地方是:使用cv::Size()设定大小时,第一个参数是指矩阵有多少列,第二个参数是指矩阵有多少行,即cv::Size(width,height),比如上面代码中的方法3和方法5。

    07-初始化一个所有元素值都为零的矩阵

    可利用Mat类的成员函数Mat::zeros()实现初始化一个所有元素值都为零的矩阵

    示例代码请查看本篇博文开头的说明。
    示例代码运行结果如下图所示:
    请添加图片描述

    08-初始化一个所有元素值都为1的矩阵

    可利用Mat类的成员函数Mat::ones()实现初始化一个所有元素值都为1的矩阵
    成员函数Mat::ones()的使用与上一个Mat::zeros()的使用完全相同,这里就不给示例代码了。

    09-初始化一个单位矩阵(对角线元素为1)

    可以用函数setIdentity()实现初始化一个单位矩阵,
    详细介绍见官方文档链接,官方文档链接如下:
    https://docs.opencv.org/4.4.0/d2/de8/group__core__array.html#ga388d7575224a4a277ceb98ccaa327c99

    10-初始化矩阵的每一个元素为不同的任意值(利用重载运算符<<)

    示例代码请查看本篇博文开头的说明。
    示例代码运行结果如下图所示:
    请添加图片描述
    注意B1的数据类型为float类型,C1的数据类型为double类型。这导致了它们输出值的不同,从提高精度的角度来说,咱们能用double型就用double型。

    11-通过别的Mat对象的属性值创建一个新的Mat对象

    示例代码请查看本篇博文开头的说明。
    示例代码运行结果如下图所示:
    请添加图片描述

    12-复制别的Mat对象的某个区域形成新的Mat对象

    关于这个,请大家参考页面 https://www.hhai.cc/thread-127-1-1.html 打开页面后搜索关键词“Mat ROI_img” 即可找到相关示例代码。

  • 相关阅读:
    Element文件上传-解决跨域
    javamd5加密解密
    【中兴】web训练营~一文带你走进前端 | 百图制作
    【大虾送书第八期】揭秘分布式文件系统大规模元数据管理机制——以Alluxio文件系统为例
    ConstraintLayout布局扩展
    面试被问了几百遍的 IoC 和 AOP ,还在傻傻搞不清楚?
    新手入门丨一堆代码在报错,如何才能快速定位Bug?!
    Open Office XML 格式中的 Style 设计原理
    Elasticsearch8.2 使用snapshot备份能力
    【HTML悬浮提示】
  • 原文地址:https://blog.csdn.net/wenhao_ir/article/details/127400741
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号